Мне нужно получить объект Drawable для отображения на кнопке изображения. Есть ли способ использовать код ниже (или что-то подобное), чтобы получить объект из пакета android.R.drawable. *?
например, если drawableId был android.R.drawable.ic_delete
mContext.getResources().getDrawable(drawableId)
android
resources
drawable
android-context
Blaskovicz
источник
источник
getDrawable(int id)
устарела. ИспользуйтеgetDrawable(int id, Resources.Theme theme)
вместо этого. МетодgetTheme()
должен быть полезным.Начиная с API 21 , вы должны использовать
getDrawable(int, Theme)
метод вместоgetDrawable(int)
, поскольку он позволяет вам выбратьdrawable
объект, связанный с определеннымresource ID
для данногоscreen density/theme
. Вызовdeprecated
getDrawable(int)
метода эквивалентен вызовуgetDrawable(int, null)
.Вместо этого вы должны использовать следующий код из библиотеки поддержки:
Использование этого метода эквивалентно вызову:
источник
context.getDrawable(id);
кажется эквивалентнымresources.getDrawable(id, context.getTheme());
ResourcesCompat.getDrawable(resources, id, context.getTheme());
Начиная с API 21, вы также можете использовать:
Вместо того
ContextCompat.getDrawable(context, android.R.drawable.ic_dialog_email)
источник
лучший способ это
ИЛИ это для Drawable слева и что-то подобное для справа и т. Д.
и
getResources().getDrawable()
сейчас устарелаисточник
От API 21
getDrawable(int id)
устарела. Так что теперь вам нужно использоватьНо лучший способ сделать это: вы должны создать один общий класс для рисования и цветов, потому что если что-то изменится или устареет в будущем, вам не нужно менять везде в вашем проекте. Вы просто измените этот метод
используйте этот метод как:
источник
Следуя решению для программистов Kotlin (из API 22)
источник