6

En una vista personalizada que tengo, estoy usando Canvas.drawBitmap con un mapa de bits de origen que es más ancho que 2048px. Esto, por supuesto, causa problemas cuando la aceleración de hardware está habilitada, con el LogCat escupiendo "W/OpenGLRenderer (4968): mapa de bits demasiado grande para ser cargado en una textura" cada vez que se invoca drawBitmap.¿Por qué no puedo forzar una de mis vistas para que se muestre en el software?

Para evitar este problema traté de llamar al setLayerType(View.LAYER_TYPE_SOFTWARE, null) desde mi punto de vista. El único problema es que no parece ayudar. Cuando intento ejecutar mi aplicación, LogCat seguirá emitiendo las advertencias y no se dibujará nada.

No puedo entender por qué es esto así. This article on the Android site establece claramente:

Se puede desactivar la aceleración de hardware para una visión individual en tiempo de ejecución con el siguiente código:

myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 

¿Hay algo que estoy haciendo mal? ¿Por qué Android no respeta la llamada setLayerType?


[en caso de que importa: yo estoy realizando mis pruebas en un Samsung Galaxy Tab 10.1 con Android 3.2]

+0

Comprobar canvas.isHardwareAccelerated(). Puede ser diferente de una vista – imort

Respuesta

0

intenta cambiar el tamaño del mapa de bits en primer lugar. Use createBitmap.

Cuestiones relacionadas