DrawBitmap con diferentes salidas de renderizado (Nexus 7 versus otros dispositivos)

En mi aplicación, utilizo drawBitmap () para mostrar un mapa de bits de baja resolución mientras estoy alejándolo. Lo probé en varios dispositivos (Galaxy Tab, Kindle Fire, Moto Xoom y Nexus 7). En todos ellos obtengo la misma calidad de renderizado, excepto en Nexus 7. Puedes ver en las capturas de pantalla adjuntas la diferencia. La región exterior es la que estoy usando drawBitmap, algo así:

mSrcRectF.set(src_x1, src_y1, src_x2, src_y2); mDesRectF.set(view_x1, view_y1, view_x2, view_y2); mMatrix.setRectToRect(mSrcRectF, mDesRectF, Matrix.ScaleToFit.CENTER); canvas.drawBitmap(bmp, mMatrix, mPagePaint); 

Si intento usar la otra variante drawBitmap (Bitmap mapa de bits, Rect src, RectF dst, pintura de pintura) sin la matriz obtengo los mismos resultados.

Creo que este problema / diferencia puede estar relacionado con la aceleración de hardware. Si lo apago (en archivo de manifiesto), obtengo los mismos resultados para todos los dispositivos. Si lo activamos, el procesamiento mejora para todos excepto Nexus, que todavía muestra un mapa de bits más 'pixelado'. He leído que algunas rutinas no son compatibles en HA, pero aún así, no puedo entender lo que está sucediendo en este caso. En un reciente post de Romain Guy en su blog, comenta:

Tenga en cuenta que los mapas de bits alfa sólo funcionan con shaders al invocar la versión "simple" de drawBitmap (). Las variantes que toman un Matrix o un rectángulo de origen y de destino no son compatibles con aceleración de hardware en este momento.

¿Puede alguien arrojar algo de luz sobre esto?

Nexus 7: Nexus 7 captura de pantalla

Xoom (o la pestaña de la galaxia, enciende el fuego): Tiro de la pantalla de Xoom

Es posible que pueda desactivar selectivamente la aceleración de hardware para su lienzo siguiendo las instrucciones de este artículo de desbordamiento de pila

No es una solución ideal, pero podría permitir que el resto de su aplicación obtenga los beneficios de la aceleración de hardware hasta que todas las opciones de drawBitmap () sean compatibles con aceleración de hardware.

  • Transiciones de páginas lentas en Android con aceleración de hardware en
  • WebView "intermitente" con fondo blanco si la aceleración de hardware está habilitada (Android 3.0+)
  • Android - drawline con aceleración de hardware y antialiasing causa artefactos
  • Comportamiento extraño de `drawTextOnPath ()` con aceleración de hardware
  • ¿Cómo utilizar la nueva GPU acelerado avd?
  • WebView dentro de ViewPager o ScrollView - extraño error de renderizado en Android 3.0+
  • Accidente con aceleración de hardware de animaciones de transición de fragmentos
  • Perforar un agujero en una superposición de rectángulo con aceleración HW activada en Ver
  • Tamaño de fuente demasiado grande para caber en caché
  • ¿Por qué la aceleración de hardware no funciona en mi vista?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.