J'ai besoin d'un objet Drawable à afficher sur un bouton d'image. Existe-t-il un moyen d'utiliser le code ci-dessous (ou quelque chose du genre) pour obtenir un objet du package android.R.drawable. *?
par exemple si drawableId était android.R.drawable.ic_delete
mContext.getResources().getDrawable(drawableId)
android
resources
drawable
android-context
Blaskovicz
la source
la source
getDrawable(int id)
est obsolète. UtilisezgetDrawable(int id, Resources.Theme theme)
plutôt. La méthodegetTheme()
devrait être utile.À partir de l' API 21 , vous devez utiliser la
getDrawable(int, Theme)
méthode au lieu degetDrawable(int)
, car elle vous permet de récupérer undrawable
objet associé à un particulierresource ID
pour le donnéscreen density/theme
. Appeler ladeprecated
getDrawable(int)
méthode équivaut à appelergetDrawable(int, null)
.Vous devez utiliser le code suivant de la bibliothèque de support à la place:
Utiliser cette méthode équivaut à appeler:
la source
context.getDrawable(id);
semble être équivalent àresources.getDrawable(id, context.getTheme());
ResourcesCompat.getDrawable(resources, id, context.getTheme());
À partir de l'API 21, vous pouvez également utiliser:
Au lieu de
ContextCompat.getDrawable(context, android.R.drawable.ic_dialog_email)
la source
le meilleur moyen est
OU ceci pour Drawable left et quelque chose comme ça pour droite etc.
et
getResources().getDrawable()
est désormais obsolètela source
From API 21
getDrawable(int id)
est obsolète. Alors maintenant, vous devez utiliserMais la meilleure façon de faire est de créer une classe commune pour obtenir des dessins et des couleurs, car si quelque chose change ou devient obsolète à l'avenir, vous n'avez pas besoin de changer partout dans votre projet.
utilisez cette méthode comme:
la source
Suite à une solution pour les programmeurs Kotlin (à partir de l'API 22)
la source