Preciso obter um objeto Drawable para exibir em um botão de imagem. Existe uma maneira de usar o código abaixo (ou algo parecido) para obter um objeto do pacote android.R.drawable. *?
por exemplo, se drawableId fosse android.R.drawable.ic_delete
mContext.getResources().getDrawable(drawableId)
android
resources
drawable
android-context
Blaskovicz
fonte
fonte
getDrawable(int id)
está obsoleta. Use emgetDrawable(int id, Resources.Theme theme)
vez disso. O métodogetTheme()
deve ser útil.Na API 21 , você deve usar o
getDrawable(int, Theme)
método em vez degetDrawable(int)
, pois permite buscar umdrawable
objeto associado a um determinadoresource ID
dadoscreen density/theme
. Chamar odeprecated
getDrawable(int)
método é equivalente a chamargetDrawable(int, null)
.Você deve usar o seguinte código da biblioteca de suporte:
Usar este método é equivalente a chamar:
fonte
context.getDrawable(id);
parece ser equivalente aresources.getDrawable(id, context.getTheme());
ResourcesCompat.getDrawable(resources, id, context.getTheme());
A partir da API 21, você também pode usar:
Ao invés de
ContextCompat.getDrawable(context, android.R.drawable.ic_dialog_email)
fonte
melhor maneira é
OU isso para Drawable esquerda e algo assim para a direita etc.
e
getResources().getDrawable()
agora está obsoletofonte
A partir da API 21
getDrawable(int id)
está obsoleta. Então agora você precisa usarMas a melhor maneira de fazer isso é: você deve criar uma classe comum para desenhar e desenhar, porque se alguma coisa mudar ou se depreciar no futuro, você não precisará mudar em qualquer lugar do projeto.
use este método como:
fonte
Seguindo uma solução para programadores Kotlin (da API 22)
fonte