为什么我的 ImageView 不以编程方式更改其 ScaleType?
Why does NOT my ImageView change its ScaleType programmatically?
我有一个名为 "alumniImage"
的 ImageView
,我以编程方式将其设置为 CENTERCROP
的 ScaleType
。
但在应用程序中它似乎没有改变。
这是它的代码:
LinearLayout.LayoutParams imageParams = new LinearLayout.LayoutParams(
(int) getResources().getDimension(R.dimen.survey_height), // 50dp
ViewGroup.LayoutParams.MATCH_PARENT);
ImageView alumniImage = new ImageView(getContext()); //because I am in a fragment
alumniImage.setLayoutParams(imageParams);
alumniImage.setImageResource(R.drawable.alumni_survey);
alumniImage.setScaleType(ImageView.ScaleType.CENTER_CROP);
alumniLayout.addView(alumniImage);
我尝试使用调试器,但没有任何改变。
这是一个屏幕截图:
为什么会这样?!
顺便说一句,我试图将 ImageView
放入 xml 文件中,但它运行良好。
提前致谢。
因为ImageView在你设置scaleType
之前绘制了图像。所以,它使用默认 scaleType
(FIT_CENTER),
在setImageResource
之前设置scaleType
。
alumniImage.setScaleType(ImageView.ScaleType.CENTER_CROP);
alumniImage.setImageResource(R.drawable.alumni_survey);
我建议你在 addView
方法中设置 LayoutParams
alumniLayout.addView(alumniImage, imageParams);
屏幕截图让我明白了发生了什么。
您的调试器的当前行是源代码的空行。
每当我收到它时,就意味着我正在调试一个过时的 APK。源代码已更改,但 APK 尚未重建。
清理您的项目,重建所有内容,然后重试。你应该看到你所期望的。
哦,是的,如果您使用的是 Instant 运行,请将其关闭。当我更新任何东西时,那个东西从来没有注意到。
我有一个名为 "alumniImage"
的 ImageView
,我以编程方式将其设置为 CENTERCROP
的 ScaleType
。
但在应用程序中它似乎没有改变。
这是它的代码:
LinearLayout.LayoutParams imageParams = new LinearLayout.LayoutParams(
(int) getResources().getDimension(R.dimen.survey_height), // 50dp
ViewGroup.LayoutParams.MATCH_PARENT);
ImageView alumniImage = new ImageView(getContext()); //because I am in a fragment
alumniImage.setLayoutParams(imageParams);
alumniImage.setImageResource(R.drawable.alumni_survey);
alumniImage.setScaleType(ImageView.ScaleType.CENTER_CROP);
alumniLayout.addView(alumniImage);
我尝试使用调试器,但没有任何改变。
这是一个屏幕截图:
为什么会这样?!
顺便说一句,我试图将 ImageView
放入 xml 文件中,但它运行良好。
提前致谢。
因为ImageView在你设置scaleType
之前绘制了图像。所以,它使用默认 scaleType
(FIT_CENTER),
在setImageResource
之前设置scaleType
。
alumniImage.setScaleType(ImageView.ScaleType.CENTER_CROP);
alumniImage.setImageResource(R.drawable.alumni_survey);
我建议你在 addView
方法中设置 LayoutParams
alumniLayout.addView(alumniImage, imageParams);
屏幕截图让我明白了发生了什么。
您的调试器的当前行是源代码的空行。
每当我收到它时,就意味着我正在调试一个过时的 APK。源代码已更改,但 APK 尚未重建。
清理您的项目,重建所有内容,然后重试。你应该看到你所期望的。
哦,是的,如果您使用的是 Instant 运行,请将其关闭。当我更新任何东西时,那个东西从来没有注意到。