为什么没有从Drawable对象获取资源名称的方法

15

我们可以使用以下代码(我的图像名称为arrow_selected.png)从任何资源创建Drawable对象:

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

但后来在应用程序中,我想从这个drawable对象中获取资源名称。 我没有找到类似以下的获取资源名称的方法。

d.getResourceName();

为什么Android API中没有这样的方法?如何从Drawable对象中获取资源名称?

3个回答

32

我也在寻找这个答案,但我找到了以下的解决方案:

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

我希望这能帮到你。


7

为什么Android API中没有这样的方法。

因为Drawable不一定要从资源中创建。

如何从Drawable对象获取资源名称?

你不能。你需要在其他地方跟踪它(例如,类的其他数据成员)。


但是,如果我可以从任何资源创建可绘制对象,那么应该存在一种方法来存储它的名称。 - user831722

2
如果您确实需要这个功能(我不确定您是否需要),您可以创建一个继承Drawable类并在构造函数的参数中接收资源ID的自定义类。
然后,您需要将此ResID存储在类中的特定字段中,并为该字段实现gettersetter。就这样!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接