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);




android-context