tag - Como você obtém um objeto Drawable de um id de recurso no pacote android?
tag manager google tutorial (3)
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 era android.R.drawable.ic_delete
mContext.getResources().getDrawable(drawableId)
https://src-bin.com
Answer #1
A partir da API 21 , você deve usar o getDrawable(int, Theme)
vez de getDrawable(int)
, pois ele permite que você busque um objeto drawable
associado a um resource ID
específico para a screen density/theme
. Chamar o método getDrawable(int)
deprecated
é equivalente a chamar getDrawable(int, null)
.
Você deve usar o seguinte código da biblioteca de suporte:
ContextCompat.getDrawable(context, android.R.drawable.ic_dialog_email)
Usando este método é equivalente a chamar:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
return resources.getDrawable(id, context.getTheme());
} else {
return resources.getDrawable(id);
}
Answer #2
A partir da API 21, você também pode usar:
ResourcesCompat.getDrawable(getResources(), R.drawable.name, null);
Em vez de ContextCompat.getDrawable(context, android.R.drawable.ic_dialog_email)
Answer #3
Drawable d = getResources().getDrawable(android.R.drawable.ic_dialog_email);
ImageView image = (ImageView)findViewById(R.id.image);
image.setImageDrawable(d);