In una vista personalizzata che ho, sto usando Canvas.drawBitmap con una bitmap di origine che è più larga di 2048px. Questo ovviamente causa problemi quando Hardware Acceleration è abilitato, con LogCat che rilascia "W/OpenGLRenderer (4968): Bitmap troppo grande per essere caricato in una texture" ogni volta che si richiama drawBitmap.Perché non riesco a forzare una delle mie viste a eseguire il rendering nel software?
Così per aggirare questo ho provato a chiamare setLayerType(View.LAYER_TYPE_SOFTWARE, null)
sulla mia vista. L'unico problema è che non sembra aiutare. Quando provo a eseguire la mia app, LogCat continuerà a dare gli avvertimenti e nulla finisce per essere disegnato.
Non riesco a capire perché sia così. This article on the Android site afferma chiaramente:
è possibile disabilitare l'accelerazione hardware per una visione individuale in fase di esecuzione con il seguente codice:
myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
C'è qualcosa che sto facendo male? Perché Android non rispetta la chiamata setLayerType?
[nel caso in cui è importante: sto eseguendo il test su un Samsung Galaxy Tab 10.1 con sistema operativo Android 3.2]
Controlla canvas.isHardwareAccelerated(). Può essere diverso da una vista – imort