我有一个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));
}