Chcę, aby obiekt do rysowania był wyświetlany na przycisku obrazu. Czy istnieje sposób na użycie poniższego kodu (lub czegoś podobnego), aby pobrać obiekt z pakietu android.R.drawable. *?
na przykład jeśli drawableId to android.R.drawable.ic_delete
mContext.getResources().getDrawable(drawableId)
android
resources
drawable
android-context
Blaskovicz
źródło
źródło
getDrawable(int id)
jest przestarzałe. UżyjgetDrawable(int id, Resources.Theme theme)
zamiast tego. MetodagetTheme()
powinna być pomocna.Od API 21 należy
getDrawable(int, Theme)
zamiast tego używać metodygetDrawable(int)
, ponieważ pozwala ona pobraćdrawable
obiekt powiązany z konkretnymresource ID
dla danegoscreen density/theme
. Wywołaniedeprecated
getDrawable(int)
metody jest równoznaczne z wywołaniemgetDrawable(int, null)
.Zamiast tego należy użyć następującego kodu z biblioteki wsparcia:
Użycie tej metody jest równoznaczne z wywołaniem:
źródło
context.getDrawable(id);
wydaje się być odpowiednikiemresources.getDrawable(id, context.getTheme());
ResourcesCompat.getDrawable(resources, id, context.getTheme());
Od API 21 możesz również użyć:
Zamiast
ContextCompat.getDrawable(context, android.R.drawable.ic_dialog_email)
źródło
najlepszy sposób
LUB to do rysowania po lewej stronie i coś takiego po prawej itp.
i
getResources().getDrawable()
jest teraz przestarzałaźródło
Z API 21
getDrawable(int id)
jest przestarzałe. Więc teraz musisz użyćAle najlepszym sposobem na to jest: Powinieneś stworzyć jedną wspólną klasę do rysowania i kolorów, ponieważ jeśli w przyszłości coś się zmieni lub zdezaktualizuje, nie musisz zmieniać w każdym miejscu projektu. Po prostu zmień tę metodę.
użyj tej metody jak:
źródło
Podążanie za rozwiązaniem dla programistów Kotlin (z API 22)
źródło