Изменение источника ImageView

Я имею ImageView с набором исходного изображения в xml использование следующего синтаксиса:

   <ImageView 
      android:id="@+id/articleImg"
      style="@style/articleImgSmall_2"
      android:src="@drawable/default_m" />

Теперь я должен изменить это изображение программно. То, что я должен сделать, удаляют старое изображение и добавляют новое все же. То, что я сделал, является этим:

myImgView.setBackgroundResource(R.drawable.monkey);

Это работает, но я заметил, что андроид складывает новое изображение сверху старого (не спрашивайте меня, как я узнал, что это не важно для обсуждения :). Я определенно должен избавиться от старого прежде, чем установить новое изображение.

Как я могу достигнуть этого?

239
задан Rüdiger Herrmann 26 June 2015 в 05:39
поделиться

2 ответа

Изменение источника 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));
}
592
ответ дан 23 November 2019 в 03:19
поделиться

Вы должны использовать setImageResource вместо setBackgroundResource.

48
ответ дан 23 November 2019 в 03:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: