Cómo crear dibujables a partir de recursos
Tengo una imagen res/drawable/test.png
(R.drawable.test).
Quiero pasar esta imagen a una función que acepte Drawable
, por ejemplo mButton.setCompoundDrawables()
.
Entonces, ¿cómo puedo convertir un recurso de imagen en Drawable
?
Aceptado
Tu Actividad debe tener el método getResources. Hacer:
Drawable myIcon = getResources().getDrawable( R.drawable.icon );
A partir de la versión 21 de API, este método está obsoleto y se puede reemplazar con:
Drawable myIcon = AppCompatResources.getDrawable(context, R.drawable.icon);
Si necesita especificar un tema personalizado, se aplicará lo siguiente, pero solo si la API es la versión 21 o superior:
Drawable myIcon = ResourcesCompat.getDrawable(getResources(), R.drawable.icon, theme);
Este código está en desuso:
Drawable drawable = getResources().getDrawable( R.drawable.icon );
Utilice esto en su lugar:
Drawable drawable = ContextCompat.getDrawable(getApplicationContext(),R.drawable.icon);
El getDrawable (int id)
método está obsoleto a partir de API 22.
En su lugar, deberías utilizar getDrawable (int id, Resources.Theme theme)
API 21+.
El código se vería así.
Drawable myDrawable;
if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP){
myDrawable = context.getResources().getDrawable(id, context.getTheme());
} else {
myDrawable = context.getResources().getDrawable(id);
}