me gustaría añadir que si usted está consiguiendo "en desuso" mensaje cuando se utiliza getDrawable (...) se debe utilizar el siguiente método de la biblioteca de soporte en su lugar.
ContextCompat.getDrawable(getContext(),R.drawable.[name])
No es necesario utilizar getResources() al usar este método.
Esto es equivalente a hacer algo como
Drawable mDrawable;
if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP){
mDrawable = ContextCompat.getDrawable(getContext(),R.drawable.[name]);
} else {
mDrawable = getResources().getDrawable(R.id.[name]);
}
Esto funciona en ambas versiones pre y post piruleta.
¿Necesita agregar algo más al manifiesto, por ejemplo? Creé un proyecto vacío con solo esta línea de código en onCreate y obtengo Resources $ NotFoundException. El proyecto vino con icon.png en hdpi, ldpi y mdpi map. – Vincent
Si le interesa esto fuera de una clase de actividad, deberá encontrar otra forma de llegar al contexto donde vive getResources(); [esta respuesta recomienda pasarlo al constructor] (http://stackoverflow.com/a/6214567/404960) – rymo
A partir de la versión 21 de la API, este método está en desuso y debe ser reemplazado por: Drawable drawable = ResourcesCompat.getDrawable (getResources(), página.getImageId(), null); – Boren