Cómo usar las herramientas predeterminadas de Android

¿Cuál es el mejor enfoque cuando se utilizan las herramientas predeterminadas de Android? ¿Debería usar android.R.drawable o debería copiar los R.drawable extraíbles en mi proyecto y usar R.drawable ?

¿Hay algún riesgo de que, en una versión más nueva de Android, se eliminen o redimensionen algunos de los objetos arrastrables predeterminados? 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 dibujables 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.

Si lee cualquiera de las discusiones sobre el grupo de desarrollo de Android verá que desaconseja el uso de cualquier cosa que no esté en el SDK público porque el rest está sujeto a cambios extensos.

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

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

Por lo que recuerdo, la documentación desaconseja el uso directo de los icons de menú de android.R.drawable y recomienda copiarlos en la carpeta de los drawables. 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: Debido a que estos recursos pueden cambiar entre las versiones de la plataforma, no debe hacer referencia a estos íconos usando los ID de recursos de la plataforma Android (es decir, los íconos 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 dibujables 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 icons, incluso si la copia del sistema cambia.

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

Mejor copia y muévelos a tus propios recursos. Es posible que algunos recursos no estén disponibles en versiones anteriores de Android. Aquí hay un enlace con todos los diseños disponibles en cada versión de Android gracias a @fiXedd

Para utilizar el recurso predeterminado dibujable de android, no es necesario copiar nada … simplemente puede importarlo primero con ..

 import android.R; 

pero haré que tus propios recursos tengan un error si quieres usarlo. El error será algo así 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 poner android.R.*something_default* para usar los recursos android predeterminados.

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