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

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

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

Теперь мне нужно изменить это изображение программно. Мне нужно удалить старый образ и добавить новый. Я сделал это так:

 myImgView.setBackgroundResource(R.drawable.monkey); 

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

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

Solutions Collecting From Web of "Изменение источника ImageView"

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

Использование setBackgroundResource() :

  myImgView.setBackgroundResource(R.drawable.monkey); 

Вы помещаете эту обезьяну в фоновом режиме.

Я предлагаю использовать метод setImageResource() :

  myImgView.setImageResource(R.drawable.monkey); 

Или с setImageDrawable() метода setImageDrawable() :

 myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey)); 

*** С новым API 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); } 

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

 myImgView.setImageResource(R.drawable.monkey); 

Используется для установки изображения в текущем виде изображения, но если вы хотите удалить это изображение, вы можете использовать этот код так:

 ((ImageView) v.findViewById(R.id.ImageView1)).setImageResource(0); 

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

Получить идентификатор ImageView как

 ImageView imgFp = (ImageView) findViewById(R.id.imgFp); 

Затем используйте

 imgFp.setImageResource(R.drawable.fpscan); 

Вместо исходных изображений вместо XML.

Или попробуй это. Для меня это нормально работает:

 imageView.setImageDrawable(ContextCompat.getDrawable(this, image)); 

Если вы хотите установить в imageview изображение, находящееся внутри mipmap dirs, вы можете сделать это следующим образом:

myImageView.setImageDrawable(getResources().getDrawable(R.mipmap.my_picture)