¿Cuál es el propósito del archivo "drawables.xml" en el directorio "values"?
Para un proyecto de estudio de Android, encontré un archivo llamado "drawables.xml" en la carpeta "values"
<resources xmlns:android="http://schemas.android.com/apk/res/android"> <item name="ic_menu_camera" type="drawable">@android:drawable/ic_menu_camera</item> <item name="ic_menu_gallery" type="drawable">@android:drawable/ic_menu_gallery</item> <item name="ic_menu_slideshow" type="drawable">@android:drawable/ic_menu_slideshow</item> <item name="ic_menu_manage" type="drawable">@android:drawable/ic_menu_manage</item> <item name="ic_menu_share" type="drawable">@android:drawable/ic_menu_share</item> <item name="ic_menu_send" type="drawable">@android:drawable/ic_menu_send</item> </resources>
¿Cuál es el propósito de este archivo? ¿Por qué crea otra referencia a un dibujable ya existente y por qué no sólo utilizar "@android: drawable / ic_menu_camera"?
- Cómo aumentar el tamaño de la vista de imagen en Android
- Botón androide con bordes de medio círculo
- (No se puede encontrar la referencia de id) Ningún recurso coincide con el nombre dado en
- 9-Patch en Selector muestra puntos negros
- Android: incluye un xml en otro xml
- Eclipse Layout Designer no puede abrir el archivo XML creado por IntelliJ
- ¿Cómo rotar la línea en Android XML?
- Android Color - ¿Cuánto más oscuro es primaryColorDark que primaryColor?
- Establecer un icono de recurso compartido en Actionbar ShareActionProvider sin ActionBarSherlock
- Espacio adicional utilizando el diseño del coordinador mientras se desplaza
- Barra de herramientas en AppBarLayout es desplazable aunque RecyclerView no tiene suficiente contenido para desplazarse
- Android Dim Fondo de diálogo personalizado
- ExpandableListView dentro de una vista de desplazamiento
Puede ser que el desarrollador tenía un poco de futuro-proofing en mente.
El desarrollador podría haber tenido código de referencia de Java android.R.drawable.ic_menu_camera
y tienen disposiciones o referencia de otras cosas @android:drawable/ic_menu_camera
. Sin embargo, si en algún momento posterior, el desarrollador necesitaba cambiar de usar una plataforma dibujable a uno personalizado, entonces todas esas referencias tendrían que ser cambiadas.
Los alias dibujables establecidos en este archivo permiten que el código Java R.drawable.ic_menu_camera
referencia a R.drawable.ic_menu_camera
y los diseños y otras cosas referencian @drawable/ic_menu_camera
. En este momento, los alias indican que los drawables "redireccionar" a la plataforma estirables. Sin embargo, en algún momento en el futuro, el desarrollador podría añadir un personalizado ic_menu_camera
, eliminar el alias … y nada más tiene que cambiar en el código Java, diseños, etc
Pocas aplicaciones se refieren a la plataforma de trazos, por lo que no verá este tipo de truco utilizado la mayor parte del tiempo. Sin embargo, para los casos en que las aplicaciones hacen referencia a los recursos de la plataforma, este enfoque de aliasing puede reducir el mantenimiento a largo plazo.
FWIW, cubro esto más en esta entrada del blog .
Bueno, en mi opinión este archivo es inútil porque ya tiene los nombres de archivo dibujables.
- CoordinatorLayout, AppBarLayout y ToolBar – Barra de herramientas no se desplaza fuera de la pantalla
- La pantalla de bloqueo no causa que onStop () sea llamado