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

时间:2011-07-07 13:52:28

标签: android

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

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

但是稍后在应用程序中我想从这个可绘制对象中获取资源名称。 我没有找到任何获取资源名称的方法,如下所示

d.getResourceName();

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

3 个答案:

答案 0 :(得分:21)

我也在搜索这个,但我提出了以下解决方案:

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

我希望这会有所帮助。

答案 1 :(得分:6)

  

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

因为不必从资源创建Drawable

  

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

你没有。您可以在其他地方跟踪它(例如,类的其他数据成员)。

答案 2 :(得分:2)

如果您确实需要该功能(我不确定您这样做),您可以创建自己的类,扩展Drawable类并在构造函数的参数中接收Resource ID。< / p>

然后,您需要将此ResID存储在班级的特殊字段中,并为该字段实施gettersetter。瞧!