Ich benötige ein zeichnbares Objekt, um es auf einer Bildschaltfläche anzuzeigen. Gibt es eine Möglichkeit, den folgenden Code (oder etwas Ähnliches) zu verwenden, um ein Objekt aus dem android.R.drawable. * -Paket abzurufen?
Zum Beispiel, wenn drawableId android.R.drawable.ic_delete war
mContext.getResources().getDrawable(drawableId)
android
resources
drawable
android-context
Blaskovicz
quelle
quelle
getDrawable(int id)
ist veraltet. Verwenden SiegetDrawable(int id, Resources.Theme theme)
stattdessen. Die MethodegetTheme()
sollte hilfreich sein.Wie der API 21 , sollten Sie die Verwendung
getDrawable(int, Theme)
Methode stattgetDrawable(int)
, da es einen holen erlaubtdrawable
Objekts mit einem bestimmten zugeordnetresource ID
für die gegebenenscreen density/theme
. Das Aufrufen derdeprecated
getDrawable(int)
Methode entspricht dem AufrufengetDrawable(int, null)
.Sie sollten stattdessen den folgenden Code aus der Support-Bibliothek verwenden:
Die Verwendung dieser Methode entspricht dem Aufruf von:
quelle
context.getDrawable(id);
scheint äquivalent zu seinresources.getDrawable(id, context.getTheme());
ResourcesCompat.getDrawable(resources, id, context.getTheme());
Ab API 21 können Sie auch Folgendes verwenden:
Anstatt
ContextCompat.getDrawable(context, android.R.drawable.ic_dialog_email)
quelle
Der beste Weg ist
ODER dies für Drawable left und so etwas für Right etc.
und
getResources().getDrawable()
ist jetzt veraltetquelle
Ab API 21
getDrawable(int id)
ist veraltet. Also jetzt müssen Sie verwendenDer beste Weg ist jedoch: Sie sollten eine gemeinsame Klasse erstellen, um Zeichen und Farben zu erhalten, denn wenn sich in Zukunft etwas ändert oder veraltet, müssen Sie sich nicht überall in Ihrem Projekt ändern. Sie ändern nur diese Methode
Verwenden Sie diese Methode wie folgt:
quelle
Nach einer Lösung für Kotlin-Programmierer (ab API 22)
quelle