Por qué no hay ningún método para obtener el nombre de recurso de objeto Drawable

Para crear el objeto Drawable de cualquier recurso podemos utilizar el siguiente código (mi nombre de la imagen es arrow_selected.png)

Drawable d =getResources().getDrawable(R.drawable.arow_selected); 

Pero más adelante en la aplicación quiero obtener el nombre de recurso de este objeto dibujable. No encontré ningún método para obtener el nombre del recurso como el siguiente

 d.getResourceName(); 

Por qué no hay tal método en la API de Android. ¿Cómo puedo obtener el nombre del recurso desde el objeto Drawable?

En caso de que si realmente necesitas esa funcionalidad (no estoy seguro de que lo hagas), podrías crear tu propia clase que extiende la clase Drawable y recibe Resource ID en paremeter de constructo.

Entonces necesitará almacenar este ResID en archivos especiales en su clase e implementar getter y setter para ese campo. Voila!

Yo estaba haciendo una búsqueda para esto también, pero he llegado con la siguiente solución:

 String name = context.getResources().getResourceEntryName(imageResID); 

Espero que esto ayude.

Por qué no hay tal método en la API de Android.

Debido a que un Drawable no tiene que ser creado desde un recurso.

¿Cómo puedo obtener el nombre del recurso desde el objeto Drawable?

No lo haces. Lo rastrea en otro lugar (por ejemplo, otros miembros de datos de una clase).

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.