【问题标题】:How to display list of resource drawables [duplicate]如何显示资源可绘制列表[重复]
【发布时间】:2011-02-02 01:29:06
【问题描述】:

我想在列表中显示所有资源可绘制对象,以便用户可以选择一个。有什么方法可以遍历所有 R.drawable 项目,这样我就不必将它们硬编码到我的程序中?

【问题讨论】:

    标签: android


    【解决方案1】:

    使用可绘制类的 getFields 方法,您可以遍历整个可绘制对象列表。

    Field[] drawables = android.R.drawable.class.getFields();
    for (Field f : drawables) {
        try {
            System.out.println("R.drawable." + f.getName());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    

    参考:http://www.darshancomputing.com/android/1.5-drawables.html

    【讨论】:

    • 使用 android.R 将只提供 Android SDK 中的原生可绘制对象。要获取您应用的可绘制对象,请使用com.example.appname.R
    • 为什么要捕获一般异常?
    • 我不确定 - 我写这个答案已经有一段时间了。一定是有原因的..
    • 太棒了!我需要一份字体资源列表,R.font.class.getFields() 效果很好。
    【解决方案2】:

    如果您查看生成的 R.drawable 对象内部,您会看到 ID 是连续的,在我的情况下(可能是您的),从 0x7f020000 开始。由于它们似乎是按 alpha 排序的,您可能可以添加虚拟图像 AAAAAAA.png 和 ZZZZZZ.png 并专门在两个 ID 之间进行迭代。

    我不能赞同你尝试这样做的原因,但我认为这会奏效。

    【讨论】:

    猜你喜欢
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    相关资源
    最近更新 更多