Saya punya ImageView
dengan sumber gambar yang diatur dalam xml menggunakan sintaks berikut:
<ImageView
android:id="@+id/articleImg"
style="@style/articleImgSmall_2"
android:src="@drawable/default_m" />
Sekarang saya perlu mengubah gambar ini secara terprogram. Yang perlu saya lakukan adalah menghapus gambar lama dan menambahkan yang baru. Apa yang saya lakukan adalah ini:
myImgView.setBackgroundResource(R.drawable.monkey);
Ini berfungsi tetapi saya perhatikan Android menumpuk gambar baru di atas yang lama (jangan tanya bagaimana saya tahu itu tidak relevan untuk diskusi :). Saya pasti perlu menyingkirkan yang lama sebelum mengatur gambar baru.
Bagaimana saya bisa mencapainya?
android
imageview
android-imageview
nourdine
sumber
sumber
android.widget.ImageView
#setBackgroundContextCompat
untuk mendapatkangetTheme
Anda seharusnya menggunakan
setImageResource
sebagai gantinyasetBackgroundResource
.sumber
digunakan untuk mengatur gambar dalam tampilan gambar saat ini, tetapi jika ingin menghapus gambar ini maka Anda dapat menggunakan kode ini seperti:
sekarang ini akan menghapus gambar dari tampilan gambar Anda, karena telah menetapkan nilai sumber daya ke nol.
sumber
dapatkan ID ImageView sebagai
lalu gunakan
untuk mengatur sumber gambar secara terprogram alih-alih dari XML.
sumber
Atau coba yang ini. Bagi saya itu berfungsi dengan baik:
sumber
Jawaban visual tambahan
ImageView
:setImageResource()
(metode standar, rasio aspek disimpan)View
:setBackgroundResource()
(gambar diregangkan)Kedua
Jawaban lengkap saya ada di sini .
sumber
Jika Anda ingin mengatur imageview gambar yang ada di dalam dir mipmap Anda dapat melakukannya seperti ini:
myImageView.setImageDrawable(getResources().getDrawable(R.mipmap.my_picture)
sumber
Cukup tulis metode untuk mengubah tampilan gambar
sumber