Saya perlu mendapatkan objek Drawable untuk ditampilkan pada tombol gambar. Apakah ada cara untuk menggunakan kode di bawah ini (atau sesuatu seperti itu) untuk mendapatkan objek dari paket android.R.drawable. *?
misalnya jika drawableId adalah android.R.drawable.ic_delete
mContext.getResources().getDrawable(drawableId)
android
resources
drawable
android-context
Blaskovicz
sumber
sumber
getDrawable(int id)
sudah usang. GunakangetDrawable(int id, Resources.Theme theme)
sebagai gantinya. Metode inigetTheme()
harus membantu.Pada API 21 , Anda harus menggunakan
getDrawable(int, Theme)
metode alih-alihgetDrawable(int)
, karena memungkinkan Anda untuk mengambildrawable
objek yang terkait dengan tertenturesource ID
untuk yang diberikanscreen density/theme
. Memanggildeprecated
getDrawable(int)
metode ini sama dengan memanggilgetDrawable(int, null)
.Anda harus menggunakan kode berikut dari perpustakaan dukungan sebagai gantinya:
Menggunakan metode ini setara dengan menelepon:
sumber
context.getDrawable(id);
tampaknya setara denganresources.getDrawable(id, context.getTheme());
ResourcesCompat.getDrawable(resources, id, context.getTheme());
Pada API 21, Anda juga dapat menggunakan:
Dari pada
ContextCompat.getDrawable(context, android.R.drawable.ic_dialog_email)
sumber
cara terbaik adalah
ATAU ini untuk Gambar kiri dan sesuatu seperti itu untuk kanan dll.
dan
getResources().getDrawable()
sekarang sudah ditinggalkansumber
Dari API 21
getDrawable(int id)
sudah usang. Jadi sekarang Anda perlu menggunakannyaTapi Cara terbaik untuk melakukannya adalah: Anda harus membuat satu kelas umum untuk mendapatkan gambar dan warna karena jika ada hal yang berubah atau usang di masa depan maka Anda tidak perlu mengubah di mana-mana dalam proyek Anda. Anda hanya perlu mengubah metode ini
gunakan metode ini seperti:
sumber
Mengikuti solusi untuk programmer Kotlin (dari API 22)
sumber