2010-07-08 10 views
47

¿Cuál es la mejor manera de usar las herramientas predeterminadas de Android? ¿Debo usar android.R.drawable o debo copiar los materiales extraíbles en mi proyecto y usar R.drawable?Cómo usar las herramientas predeterminadas de Android

¿Existe algún riesgo de que, en una versión más reciente de Android, se eliminen o redimensionen algunos de los objetos arrastrables por defecto? O, afectar de alguna manera negativa, el aspecto de mi aplicación? Además, ¿cuál de los elementos extraíbles del código fuente de Android se considera "estable" y se debe confiar en ellos?

Prefiero no copiar los dibujantes porque creo que el aspecto de la aplicación debe ser coherente con la versión de Android utilizada. Entonces, por ejemplo, para la versión 1.6 debería usar los mapas de bits predeterminados de Android para la versión 1.6.

+1

http://androiddrawables.com/ tiene una lista de los dibujables predeterminados disponibles para cada versión. –

+0

Posible duplicado de [¿Dónde están todos los recursos de icono de Android estándar?] (Http://stackoverflow.com/questions/7352898/where-are-all-the-standard-android-icon-resources) –

Respuesta

20

Si usted lee a través de cualquiera de los debates sobre el grupo de desarrollo de Android se verá que desalientan el uso de cualquier cosa que no está en el SDK público porque el resto está sujeto a cambio extenso.

+4

Entonces, básicamente, cualquier cosa de http://developer.android.com/reference/android/R.drawable.html se puede usar directamente sin copiar? –

+0

Sí ... eso es lo que yo pensaría. – androidworkz

+4

Si bien es técnicamente correcto que cualquier cosa que no esté en el SDK pueda cambiar, hay algunas cosas que es muy poco probable que cambien y si REALMENTE lo necesita, puede salirse con la suya. Lo más seguro sería copiar los archivos de imagen que necesita de la fuente anroid en su propio directorio dibujable, pero esto significa que si lanzan una nueva versión de Android con diferentes imágenes, su aplicación se verá vieja. – OldSchool4664

3

Es mejor usar android.R.drawable porque es público y está documentado.

21

Mejor copie y mueva a sus propios recursos. Es posible que algunos recursos no estén disponibles en versiones anteriores de Android. Here is a link con todos los modelos disponibles en cada versión de Android gracias a @fiXedd

+0

Gracias por el útil enlace . Sin embargo, no estoy convencido de que deba copiarlos según mis propios recursos. –

+0

El enlace está roto. Podría explicar en su respuesta de qué se trataba o redirigir el hipervínculo a la ubicación correcta, por favor. –

+0

En el enlace proporcionado, puede ver lo que está disponible para cada versión. Solo quería mostrar cómo algunos iconos podrían no estar disponibles para las versiones anteriores. Por lo tanto, es mejor copiarlos y moverlos a los recursos de su proyecto. Este enlace también puede ser de ayuda: http://androiddrawableexplorer.appspot.com/ – ggomeze

33

Por lo que recuerdo, la documentación desaconseja el uso de los iconos de menú de android.R.drawable directamente y recomienda copiarlos en la carpeta de los dibujos. La razón principal es que esos íconos y nombres pueden estar sujetos a cambios y es posible que no estén disponibles en versiones futuras.

Advertencia: como estos recursos pueden cambiar entre las versiones de la plataforma, no debe hacer referencia a estos iconos utilizando los ID de recurso de la plataforma Android (es decir, los iconos de menú en android.R.drawable). Si desea utilizar cualquier ícono u otros recursos internamente dibujables, debe almacenar una copia local de esos íconos o recursos extraíbles en los recursos de su aplicación, luego haga referencia a la copia local desde el código de su aplicación. De esa manera, puede mantener el control sobre la apariencia de sus iconos, incluso si la copia del sistema cambia.

de: http://developer.android.com/guide/practices/ui_guidelines/icon_design_menu.html

+0

Encontré el enlace: http://developer.android.com/guide/practices/ui_guidelines/icon_design.html#menuapx –

+0

Hola, ¿cuál es la conclusión? Para copiar o no copiar? Esta respuesta suena convincente para copiar, pero todos los demás desaconsejan. – kiki

+2

Tenga en cuenta que algunos fabricantes pueden modificar algunos artículos y se verán diferentes en diferentes teléfonos. Motoblur utiliza resaltado rojo en lugar de naranja, por lo que los elementos deslizables como marcas de verificación y botones (algunos de los cuales están incluso en R.drawable) serán inconsistentes si haces una copia. – idbrii

6

para utilizar el recurso dibujable Android por defecto, no hay necesidad de copiar nada .. que sólo puede importar primero con ..

import android.R; 

pero voy a hacer sus propios recursos tendrán un error si se desea usarlo El error será algo como:

R. no se puede resolver

Por lo tanto, prefiero no import android.R pero import *my.own.package*.R;

entonces cuando normalmente puedo usar mi propio recurso con R.drawable.*something* sin error, y ponga android.R.*something_default* para usar los recursos android predeterminados.

81

Java Ejemplo de uso: myMenuItem.setIcon(android.R.drawable.ic_menu_save);

de recursos Ejemplo de uso: android:icon="@android:drawable/ic_menu_save"

+0

Esto responde la pregunta exactamente. – hopia

+0

pero algunos elementos extraíbles en mi SDK no se encuentran en esta lista. –

+0

Puede estar usando una versión anterior de SDK – IcedDante

Cuestiones relacionadas