15

To create Drawable object from any resource we can use the following code (my image name is arrow_selected.png)

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

But later in the application I want to get the resource name from this drawable object. I didnot find any method to get resource name like the following

d.getResourceName();

Why there is no such method in android API. How can I get Resource Name from Drawable object?

3 Answers3

32

I was doing a search for this as well but I came up with the following solution:

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

I hope this helps.

NeoDreamer77
  • 321
  • 3
  • 2
7

Why there is no such method in android API.

Because a Drawable does not have to be created from a resource.

How can I get Resource Name from Drawable object?

You don't. You track it elsewhere (e.g., other data members of a class).

CommonsWare
  • 986,068
  • 189
  • 2,389
  • 2,491
  • But If I can create a drawable from any resource there should exist a way to to store its name. –  Jul 07 '11 at 15:04
2

In case if you really need that functionality (I'm not sure you do), you could create your own class that extends Drawable class and receives Resource ID in a parameter of the constructor.

Then you need to store this ResID in a special field in your class and implement getter and setter for that field. Voila!

laylarenee
  • 3,276
  • 7
  • 32
  • 40
woodshy
  • 4,085
  • 3
  • 22
  • 21