user831722
user831722

Reputation:

Why there is no method to get Resource Name from Drawable object

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?

Upvotes: 15

Views: 12626

Answers (3)

woodshy
woodshy

Reputation: 4121

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!

Upvotes: 2

NeoDreamer77
NeoDreamer77

Reputation: 321

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.

Upvotes: 32

CommonsWare
CommonsWare

Reputation: 1007554

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

Upvotes: 7

Related Questions