Android 2.2 distorsiona los colores de la imagen?

Tengo algunos archivos .png en mi aplicación. Tengo que cargar estos durante el tiempo de ejecución, y obtener los colores exactos de ciertos píxeles de ellos. Es importante, que no quiero escalar estas imágenes. No los muestro en la interfaz de usuario directamente, sirven como mapas.

Ahora, en Android 1.5, no hay ningún problema con esto. Pongo estas imágenes en el directorio '/ res / drawable', las cargo con BitmapFactory en un objeto Bitmap, y lo utilizo para obtener el color de los píxeles deseados. Por ejemplo, el pixel (100, 50) tiene el color RGB (100, 1, 100).

En Android 2.2 tho, el mismo procedimiento resulta en colores diferentes (para el mismo píxel), así que obtengo RGB (99, 3, 102) / RGB (101, 2, 99) / etc. para el mismo (100, 50) píxeles . Comprobé la resolución del objeto Bitmap, parece que no se ha escalado.

¿Podría alguien explicar, ¿por qué obtener valores de color distorsionados?

Resuelto: Parece que en Android 2.2, tengo que configurar la configuración de mapa de bits correcta. De alguna manera, las versiones por debajo de 2.2 lograron hacer esto (o tal vez menos configs son compatibles con ellos, y el sistema adivinó correctamente la configuración, no lo sé).

De todos modos, aquí está el código que uso ahora:

BitmapFactory.Options opt = new BitmapFactory.Options(); opt.inDither=false; opt.inPreferredConfig = Bitmap.Config.ARGB_8888; Bitmap mask = BitmapFactory.decodeResource(getResources(), R.drawable.picture, opt); 

Vaya hacer usted mismo un bitmap thats enteramente el mismo color del pixel en la pregunta. Haga que el tamaño de este mapa de bits tenga la misma resolución que el que utiliza actualmente. Cargarlo y comprobar los valores RGB del mismo píxel (o cualquier píxel) que tiene problemas.

Esto debería indicar si su problema es la escala, que es lo que creo que es, o posiblemente un problema en la traducción de color.

Si no encuentra una respuesta rápida, mi racha pragmatista le preguntará cuán difícil es analizar el .png usted mismo, para obtener resultados completamente deterministas independiente de cualquier cambio en la plataforma.

Mis dispositivos 2.3 (Nexus One y S) funcionaron bien sin establecer "opt.inPreferredConfig", pero parece que 2.2 lo requiere para RGBs precisos.

  • ENOENT (ningún archivo o directorio) cuando hay un archivo allí
  • Cómo cambiar el formato de imagen de JPEG a PNG en android?
  • Mapa de bits en Android: Tamaño de los recursos para mostrar como 50dp
  • Quiero guardar una imagen .png de AndroidPlot
  • La imagen transparente de PNG no parece agradable
  • Uso de JPEG como fondo en Android insted de PNG
  • A veces: <nine-patch> requiere un atributo src válido
  • Png transparente en el mercado Android para activos de alta resolución
  • Cómo cargar un ImageView desde un archivo png?
  • Android: lee la imagen PNG sin alpha y decodifica como ARGB_8888
  • Cámara predeterminada para tomar una foto en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.