Android: dither = "true" no dither, lo que está mal?

He estado tratando de obtener android para templar la imagen de fondo de una actividad – hasta ahora sin éxito. No tengo ni idea de lo que está mal.

Esto es lo que hice:

El elemento raíz de mi distribución de actividades es LinearLayout:

<LinearLayout android:id="@+id/AbsoluteLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:gravity="center_horizontal" android:background="@drawable/background_dither"> 

Donde agregué @ drawable / background_dither como la imagen de fondo. Puse un archivo XML "background_dither.xml" en drawable-hdpi con el siguiente contenido:

 <?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/backimg" android:src="@drawable/background" android:dither="true" android:antialias="true" /> 

Que hace referencia a la imagen real background.png en drawable-hdpi. La imagen, que incluye un gran gradiente de color, se muestra, pero con bandas de color pesado. De lo que he aprendido del SDK, esto se puede mitigar usando la definición de imagen de / above proxy junto con especificar android: dither = "true". Sin embargo, esto no tiene ningún efecto.

¿Qué estoy perdiendo para conseguir trabajo de tramado?

EDIT : Subido las fuentes aquí

EDIT2 : Después de que ninguno de los métodos sugeridos ayudó a deshacerse de las bandas de color, después de leer esta entrada del blog de Romain Guy tuve la idea de comprobar si mi fondo PNG tiene un canal alfa. No lo hizo. Después de añadir uno, androide en realidad parece utilizar RGB8888, como se dijo en el post y la banda se ha ido (también para 2.2). Todavía se preguntaba por qué los otros métodos no funcionaban.

EDIT3 : Uno tiene que asegurarse de que el PNG no sólo tiene un canal alfa, pero también al menos un píxel que tiene un valor alfa! = FF, de lo contrario las herramientas de compilación de Android de nuevo tira de ese mapa de bits a una paleta indexada sin canal alfa .

Se metió en este problema también hoy y encontré y usé tu solución: Crear el png en Photoshop con el conjunto de transparencias Y tener al menos un píxel usando el alfa. En realidad lo que hice fue establecer la capa a un 99% de opacidad. No afecta a los colores ni nada y hacer que el compilador de Android deje mi png solo.

Trate de poner esta línea

 getWindow().setFormat(PixelFormat.RGBA_8888); 

Justo después de super.onCreate() y ver si ayuda.

Tuve estos problemas también, he fijado la aplicación de nueve función de parche a la imagen de fondo.

Espero que esto ayude

Muchas personas que tienen el mismo problema informan que establecer setDither (true) en su recurso drawable en el código Java funciona cuando el atributo XML no lo hace. En este caso, si puede obtener una referencia a su LinearLayout en el método onCreate, intente

LineLayout.getBackground (). SetDither (true).

Una alternativa sería intentar establecer un formato de píxel diferente como se describe aquí:

http://stuffthathappens.com/blog/2010/06/04/android-color-banding/

¡Buena suerte!

En Android 2.2.1 y posterior hay un error que hace que el dithering se desactive si el filtrado está habilitado. En Android 2.3.3 y 3.0 este problema parece estar solucionado. No estoy seguro de si lo mismo podría ser cierto para antialias como lo has habilitado.

  • ¿Cómo centrar los elementos de una revista de reciclaje?
  • Utilizar 'ellipsize' en un TextView y estirar la vista SOLAMENTE si es necesario
  • ¿Cómo puedo obtener la ubicación actual de un ActionBar MenuItem?
  • Android ¿cómo puedo establecer un porcentaje de relleno / margen para EditText tiene 10% de margen en ambos lados?
  • Inflación de diseño en control personalizado - ¿cómo?
  • Cómo diseñar diseño lineal derecho a izquierdo
  • ¿Cómo pasar el Array a otra actividad?
  • Diferencia entre diseño y diseño-400dp-land
  • Android - Creación de imágenes e iconos
  • ¿Cómo poner un EditText y un botón al lado del otro?
  • ¿Es posible hacer que las pestañas de ActionBar sean más altas que la altura de ActionBar? ¿Si es así, cómo?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.