Как просматривать изображения R.drawable. * - PullRequest
12 голосов
/ 15 декабря 2009

Платформа Android имеет множество значков и изображений, доступных как R.drawable. *, Которые могут использоваться приложениями для выполнения общих задач. Их имена дают некоторую подсказку о том, кем они являются, но во многих случаях этого недостаточно. Нужно использовать пробную ошибку, чтобы найти правильный значок, который соответствует вашим целям.

Мой вопрос: есть ли способ, где я могу просмотреть все эти изображения в одном месте, чтобы я мог быстро решить, какие из них использовать?

Я заглянул внутрь исходного кода Android, но не смог найти корень этих рисованных объектов.

Дайте мне знать, если у кого-нибудь из вас есть какие-либо советы. Спасибо.

Ответы [ 3 ]

17 голосов
/ 15 декабря 2009

Спасибо Кори, это почти то, что я искал. Между тем, я приготовил небольшое приложение, чтобы просмотреть все рисунки. Это небольшое приложение, которое использует отражение, чтобы перечислить все рисованные элементы (предварительный просмотр изображения и их имена), как показано на этом снимке экрана.

alt text

Это в основном следующий фрагмент кода:

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

или apk от http://www.altcanvas.com/downloads/apks/drawablepreview.apk

13 голосов
/ 11 марта 2011

андроид-СДК-корень / платформы / андроид-X / данные / RES / вытяжка-ИПЧР

7 голосов
/ 15 декабря 2009

Я нашел полезную ссылку на Android 1.5 Drawables , которая привела к официальным Руководствам по дизайну иконок Google . Кажется, он содержит большинство, если не все, встроенных в Android элементов для рисования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...