【问题标题】:Why there is no method to get Resource Name from Drawable object为什么没有从 Drawable 对象中获取资源名称的方法
【发布时间】:2018-01-23 21:35:20
【问题描述】:

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

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

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

d.getResourceName();

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

【问题讨论】:

    标签: android


    【解决方案1】:

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

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

    我希望这会有所帮助。

    【讨论】:

      【解决方案2】:

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

      因为Drawable 不必从资源中创建。

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

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

      【讨论】:

      • 但是如果我可以从任何资源创建一个可绘制对象,那么应该存在一种存储其名称的方法。
      【解决方案3】:

      如果您确实需要该功能(我不确定您是否需要),您可以创建自己的类来扩展 Drawable 类并在构造函数的参数中接收 Resource ID

      然后您需要将此ResID 存储在您的类中的一个特殊字段中,并为该字段实现gettersetter。瞧!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-10
        • 2011-03-14
        • 2017-08-09
        • 1970-01-01
        • 1970-01-01
        • 2023-04-02
        • 2021-09-25
        相关资源
        最近更新 更多