android - 如何预览 R.drawable.* 图像

标签 android icons

Android 框架有各种图标和图像 - 可作为 R.drawable.* 访问 - 应用程序可将其用于常见任务。他们的名字给出了一些关于他们是什么的暗示,但在许多情况下这还不够。必须反复试验才能找到适合自己目的的正确图标。

我的问题:有没有一种方法可以让我在一个地方预览所有这些图像,以便我可以快速决定使用哪些图像?

我查看了 android 源代码,但无法找到这些可绘制对象的根目录。

如果你们有任何建议,请告诉我。 谢谢。

最佳答案

谢谢 Corey,这正是我想要的。与此同时,我制作了一个小应用程序来预览所有可绘制对象。这是一个使用反射列出所有可绘制对象(图像预览及其名称)的小型应用程序,如屏幕截图所示。

alt text

它基本上是以下代码 fragment :

public class DrawablePreviewActivity extends ListActivity
{
    private static final String TAG = "DrawablePreviewActivity";

    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        setTitle("Preview of android.R.drawable.*");

        try {
            Class RClass = Class.forName("android.R");

            Class[] subclasses = RClass.getDeclaredClasses();

            Class RDrawable = null;

            for(Class subclass : subclasses) {
                if("android.R.drawable".equals(subclass.getCanonicalName())) {
                    RDrawable = subclass;
                    break;
                }
            }

            List<Map<String, Object>> drinfo = new ArrayList<Map<String, Object>>();

            Field[] drawables = RDrawable.getFields();
            for(Field dr : drawables) {
                Map<String, Object> map = new HashMap<String, Object>();
                Drawable img = getResources().getDrawable(dr.getInt(null));

                map.put("drimg", dr.getInt(null));
                map.put("drname", dr.getName());

                drinfo.add(map);
            }

            setListAdapter(new SimpleAdapter(this,
                            drinfo,
                            R.layout.listitem,
                            new String[] { "drimg", "drname" },
                            new int[] { R.id.drimg, R.id.drname }));

        } catch(IllegalAccessException iae) {
            Log.e(TAG, iae.toString());
        } catch(ClassNotFoundException cnfe) {
            Log.e(TAG, cnfe.toString());
        }
    }
}

您还可以从 http://www.altcanvas.com/downloads/drawablepreview.tar.gz 获得源码包

或来自 http://www.altcanvas.com/downloads/apks/drawablepreview.apk 的 apk

关于android - 如何预览 R.drawable.* 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1905128/

相关文章:

android - 从 android PayPal sdk 中提取运输信息

android - Gradle:构建Android库后如何运行自定义任务?

android - 获取android中所有已安装应用的图标

iphone - 应用程序图标出现在应用程序模拟器上但不出现在设备上

angular - 默认显示排序图标 - ngx-datatable-column

java - 向每个 listView 元素添加一个删除按钮

android - Google Play 权限声明表单无法访问

java - 在Java中当鼠标指针悬停在按钮上时如何突出显示按钮(就像XP中的“开始”按钮突出显示)?

java - 无法显示图标 - 获取图像时未捕获错误