vectorizada vectoriales vectorial una que mapa informatica imagenes imagen formato entre ejemplos diferencia cuál cuadro comparativo android android-layout

android - vectoriales - ¿Error de mapa de bits de azulejo de XML dibujable?



que es una imagen vectorizada (2)

Este es un error conocido, parcialmente arreglado en Android 3.0 y completamente arreglado en ICS.

Tengo problemas donde mi recurso dibujable usa la repetición tileMode. En algunos casos, la imagen se acaba de estirar y, a veces, se repite correctamente.

Los siguientes son los archivos xml que utilizo para crear los estados de los botones:

Imagen dibujable utilizada para azulejos repetidos.

^^^^^^^^^^^^^^

btn_menu_item.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android" android:constantSize="true" android:visible="true" android:variablePadding="true"> <!-- selected --> <item android:state_selected="true" android:drawable="@drawable/menu_item_selected"/> <!-- focused --> <item android:state_focused="true" android:drawable="@drawable/menu_item_pressed"/> <!-- pressed --> <item android:state_pressed="true" android:drawable="@drawable/menu_item_pressed"/> <!-- normal --> <item android:state_pressed="false" android:state_focused="false" android:drawable="@drawable/menu_item_normal"/> </selector>

menu_item_normal.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_selected="true"> <shape android:shape="rectangle"> <gradient android:startColor="#757575" android:endColor="#929292" android:angle="90"/> </shape> </item> <item> <bitmap android:src="@drawable/menu_lines_texture" android:tileMode="repeat" android:dither="true"/> </item> </layer-list>

menu_item_pressed.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_selected="true"> <shape android:shape="rectangle"> <gradient android:startColor="#dd4e00" android:endColor="#c64600" android:angle="90"/> </shape> </item> <item> <bitmap android:src="@drawable/menu_lines_texture" android:tileMode="repeat" android:dither="true"/> </item> </layer-list>

Por favor, vea las imágenes a continuación de lo que estoy hablando exactamente.


Tuvimos un problema similar al escribir 3.2 en el dispositivo Google TV de Sony. Nos dimos cuenta de que algunas bandas de fondo muy similares se derivan del uso de android:tileMode="repeat" en un mapa de bits como imagen de fondo.

En este caso, la solución fue desactivar la aceleración de hardware en la vista que contenía el mapa de bits así (desde una función en nuestra Actividad):

View tile_holder = this.findViewById(R.id.tile_holder); tile_holder.setLayerType(View.LAYER_TYPE_SOFTWARE, null);