2009-12-15 8 views
12

El marco de Android tiene una variedad de iconos e imágenes, accesibles como R.drawable. *, Que pueden usar las aplicaciones para tareas comunes. Sus nombres dan alguna pista acerca de lo que son, pero en muchos casos eso no es suficiente. Uno tiene que usar el método de prueba y error para encontrar el ícono correcto que se ajuste a su propósito.Cómo obtener una vista previa de las imágenes de R.drawable. *

Mi pregunta: ¿Hay alguna manera de poder obtener una vista previa de todas estas imágenes en un solo lugar, para que pueda decidir rápidamente cuáles usar?

He buscado dentro del código fuente de Android, pero no he podido localizar la raíz de estos documentos.

Avíseme si alguno de ustedes tiene algún consejo. Gracias.

+1

¿Por qué el APK necesita acceso telefónico? Oo –

Respuesta

17

Gracias Corey, eso es más o menos lo que estaba buscando. Mientras tanto, cociné una pequeña aplicación para ver todos los dibujables. Es una aplicación pequeña que usa la reflexión para enumerar todos los elementos dibujables (vista previa de la imagen y sus nombres) como se muestra en esta captura de pantalla. código

alt text

Se trata básicamente siguiente fragmento:

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()); 
     } 
    } 
} 

También puede obtener un paquete fuente de http://www.altcanvas.com/downloads/drawablepreview.tar.gz

o apk de http://www.altcanvas.com/downloads/apks/drawablepreview.apk

+0

¡Asombroso! Gracias por compartir :-D – rubdottocom

12

android-sdk-root/plataformas/android-X/data/res/drawable-hdpi

+1

Aquí está la respuesta, no estoy seguro de si se trata de la lista completa, pero esta debería ser la respuesta aceptada. –

Cuestiones relacionadas