2011-07-29 19 views
5

Estoy intentando utilizar el stat_sys_download android.R.drawable imagen de fondo de una vista de texto como, pero no es aparecer:Android: No se puede utilizar android.R.drawable como fondo por TextView

textview.setBackgroundDrawable(getResources().getDrawable(android.R.drawable.stat_sys_download)); 

Si uso un android.R.drawable diferente como ic_menu_save funciona bien:

textview.setBackgroundDrawable(getResources().getDrawable(android.R.drawable.ic_menu_save)); 

que sin embargo puedo utilizar stat_sys_download como un icono en una opción de menú, así que sé que existe:

menu.add(0, OPTION_MENU_SORTBY, 0, Str.TEXT_SORTBY).setIcon(android.R.drawable.stat_sys_download); 

¿Por qué es que puedo usar stat_sys_download como un icono pero no como fondo? ¿Debo copiarlo en mi carpeta de recursos y usarlo de esa manera?

+0

¿Qué ocurre si copia el archivo drawable.stat_sys_download en su carpeta local y luego utiliza su paquete.R.drawable.stat_sys_download? – Gallal

Respuesta

2

De Google's UI Guidelines for Status Bar Icons (también se puede aplicar a otros elementos estirables)

Advertencia: Debido a que estos recursos pueden cambiar entre versiones de la plataforma, usted no debe hacer referencia a estos iconos utilizando la plataforma ID de los recursos Android (es decir, el estado iconos de barras 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 hacer referencia a la copia local desde el código de su aplicación. De esta manera, puede mantener el control sobre la apariencia de sus iconos , incluso si la copia del sistema cambia.

+0

Perfecto, gracias – odiggity

0

Eso es extraño, aunque probablemente exista una diferencia entre ic_menu_save y stat_sys_download en sus formatos que causa este problema. ¿Puedes intentar usar setBackgroundResource(int resId) en su lugar? De lo contrario, intente copiar el recurso a su directorio local y vea si eso funciona.

Cuestiones relacionadas