У меня есть ImageView
с исходным изображением, установленным в XML, используя следующий синтаксис:
<ImageView
android:id="@+id/articleImg"
style="@style/articleImgSmall_2"
android:src="@drawable/default_m" />
Теперь мне нужно изменить это изображение программно. Что мне нужно сделать, это удалить старое изображение и добавить новое, хотя. Что я сделал, это:
myImgView.setBackgroundResource(R.drawable.monkey);
Это работает, но я заметил, что Android складывает новое изображение поверх старого (не спрашивайте меня, как я узнал, что это не имеет отношения к обсуждению :). Я определенно должен избавиться от старого, прежде чем устанавливать новый образ.
Как я могу этого достичь?
android
imageview
android-imageview
nourdine
источник
источник
android.widget.ImageView
#setBackgroundContextCompat
чтобы получить рисовать безgetTheme
Вы должны использовать
setImageResource
вместоsetBackgroundResource
.источник
используется для установки изображения в текущем представлении изображения, но если вы хотите удалить это изображение, вы можете использовать этот код, например:
теперь это удалит изображение из вашего изображения, потому что оно установило значение ресурсов на ноль.
источник
получить идентификатор ImageView как
затем используйте
установить исходное изображение программно вместо XML.
источник
Или попробуйте это. Для меня это работает нормально:
источник
Дополнительный визуальный ответ
ImageView
:setImageResource()
(стандартный метод, соотношение сторон сохраняется)View
:setBackgroundResource()
(изображение растянуто)Обе
Мой более полный ответ здесь .
источник
Если вы хотите установить в imageview изображение, находящееся внутри папок mipmap, вы можете сделать это следующим образом:
myImageView.setImageDrawable(getResources().getDrawable(R.mipmap.my_picture)
источник
Просто напишите способ изменения изображения
источник