Cómo agregar una imagen PNG como fondo en Android sin alteración (bandas)?

Estoy tratando de añadir un fondo que incluye un gradiente (Quiero usar una imagen, no un efecto xml declarado gradiente de Android).

Esta imagen está notablemente arruinada por Android, agrega un poco de banda crappy lo que intente el resultado es el mismo (dos captura de aproximadamente la misma región de las imágenes distorsionadas / normal):

distorsionadonormal

Mi imagen se utiliza como un fondo de diseño dentro de mi diseño XML:

android:background="@drawable/background_gradient_dithered" 

He intentado utilizar un intermedio drawable para forzar el dither cuyo xml es:

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

He intentado tener el código siguiente en mi onCreate ():

 getWindow().setFormat(PixelFormat.RGBA_8888); 

Ambos intentos no cambiaron nada.

Gracias

La solución correcta era …. Apuesto a que lo adivinas: reiniciar Eclipse. Lo he aprendido, cada problema en Android podría ser un "problema de reinicio de Eclipse".

Después de algunas pruebas puedo agregar que habilitar dethering no es útil cuando Format está configurado como PixelFormat.RGBA_8888

Los lectores deben echar un vistazo a la respuesta dada por @ TenFour04, este enfoque puede evitar hacer dibujable sólo para permitir el dithering.

 window.addFlags(WindowManager.LayoutParams.FLAG_DITHER); 

EDIT:

He descubierto que incluso con estos trucos el problema puede persistir. Puedes intentar modificar tu PNG para que tenga una capa alfa (cambiar un píxel a una transparencia del 99% por ejemplo), esto obligaría al compilador androide a no jugar con él.

Intente agregar esto en onCreate (). Las versiones anteriores de Android predeterminan que no hay tramado.

 Window window = getWindow(); window.setFormat(PixelFormat.RGBA_8888); window.addFlags(WindowManager.LayoutParams.FLAG_DITHER); 

Lo solucioné, solo cambia el tamaño de los archivos .png . Los puse en el mdpi y lo redimensioné con Irfanview <-open el editor de la imagen de la fuente a 1024x7xx <- no recuerdo, esto viene muy práctico y lo 1024x7xx para 300 dpi . Así que descargarlo en una tableta y cosas, espero que esto ayude 🙂

  • Android: lee la imagen PNG sin alpha y decodifica como ARGB_8888
  • Imagen de png que aparece con fondo gris en android
  • ¿Cuál es la diferencia entre usar vector drawable y un conjunto de .png para iconos en Android?
  • Cámara predeterminada para tomar una foto en android
  • Horrible desempeño de libPNG en iOS
  • Nexus 7, Android 4.4 y imagen png
  • Mapa de bits en Android: Tamaño de los recursos para mostrar como 50dp
  • ENOENT (ningún archivo o directorio) cuando hay un archivo allí
  • OpenGL ES 2.0 PNG canal alfa
  • Cómo cambiar el formato de imagen de JPEG a PNG en android?
  • Cómo convertir bitmap a PNG y luego a base64 en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.