Why there is no method to get Resource Name from D

2020-02-07 00:08发布

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?

标签: android
3条回答
我想做一个坏孩纸
2楼-- · 2020-02-07 00:25

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.

查看更多
贪生不怕死
3楼-- · 2020-02-07 00:33

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!

查看更多
够拽才男人
4楼-- · 2020-02-07 00:35

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

查看更多
登录 后发表回答