XML drawable Bitmap tileMode error?

Estoy teniendo problemas donde mi recurso dibujable utiliza la repetición tileMode. En algunos casos, la imagen se estiró y, a veces, se repite correctamente.

Los siguientes son los archivos xml que utilizo para crear los estados del botón:

Imagen dibujable usada para el azulejo repetido

Imagen dibujable usada para el azulejo repetido

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

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 de lo que estoy hablando.

Imagen de estado normal correctamente repetidaImagen de estado presionada no repetida pero estirada

Se trata de un error conocido, parcialmente arreglado en Android 3.0 y completamente corregido en ICS.

Estábamos teniendo un problema similar escribiendo para 3.2 en el dispositivo de Google TV de Sony. Hemos notado algunos antecedentes muy similares derivado de usar android:tileMode="repeat" en un mapa de bits como una imagen de fondo.

En este caso, la corrección era desactivar la aceleración de hardware en la vista que contenía el bitmap así (de una función en nuestra Actividad):

 View tile_holder = this.findViewById(R.id.tile_holder); tile_holder.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 
  • Android: RadioButton dentro de Layout anidado bajo RadioGroup se cae fuera del grupo
  • Espacio entre el scrollview anidado y la barra de herramientas de colapso android
  • Cómo encontrar el área de texto (altura / ancho) de TextView de forma programática en android
  • Uso de ImageView como fondo para un diseño de Android
  • Cómo iniciar un servicio cuando .apk está instalado por primera vez
  • ¿La imagen tarda demasiado en cargarse?
  • Disposiciones de Android: ajuste Vista en la barra de acciones
  • Nombre de la carpeta de diseño para dispositivos 720x1280 como samsung galaxy s3
  • TextInputLayout: color diferente para la etiqueta de indicación cuando no está enfocado
  • Cómo resolver No se puede conectar al editor para recuperar el error de texto
  • ¿Tiene iOS algo similar a RecyclerView de Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.