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

09-05 08:43
查看更多