我有一个ImageView
,其中使用以下语法在xml中设置了源图像:
<ImageView
android:id="@+id/articleImg"
style="@style/articleImgSmall_2"
android:src="@drawable/default_m" />
现在,我需要以编程方式更改此图像。我需要做的是删除旧图像,然后添加新图像。我所做的是这样的:
myImgView.setBackgroundResource(R.drawable.monkey);
它可以工作,但是我注意到android将新图像堆叠在旧图像之上(不要问我如何发现它与讨论无关:)。在设置新图像之前,我绝对需要摆脱旧的图像。
我该如何实现?
最佳答案
更改ImageView源:
使用 setBackgroundResource()
方法:
myImgView.setBackgroundResource(R.drawable.monkey);
你把那只猴子放在后台。我建议使用
setImageResource()
方法: myImgView.setImageResource(R.drawable.monkey);
或使用 setImageDrawable()
方法:myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey));
***现在使用新的android API 22 getResources().getDrawable()
已弃用。这是现在如何使用的示例:myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey, getApplicationContext().getTheme()));
以及如何验证旧的API版本:if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey, getApplicationContext().getTheme()));
} else {
myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey));
}