6

W niestandardowym widoku, używam Canvas.drawBitmap ze źródłową bitmapą, która jest szersza niż 2048px. To oczywiście powoduje problemy przy włączonej akceleracji sprzętowej, a LogCat wypluwa "W/OpenGLRenderer (4968): Bitmapa jest zbyt duża, aby można ją było załadować do tekstury" za każdym razem, gdy wywoływana jest funkcja drawBitmap.Dlaczego nie mogę zmusić jednego z moich widoków do renderowania w oprogramowaniu?

Aby obejść ten problem, próbowałem wywoływać w moim widoku setLayerType(View.LAYER_TYPE_SOFTWARE, null). Jedynym problemem jest to, że nie pomaga. Kiedy próbuję uruchomić moją aplikację, LogCat nadal będzie dawał ostrzeżenia i nic nie zostanie wyciągnięte.

Nie mogę zrozumieć, dlaczego tak się dzieje. This article on the Android site wyraźnie stwierdza:

Możesz wyłączyć sprzętową akcelerację dla indywidualnego widzenia w czasie wykonywania następującego kodu:

myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 

Czy coś robię źle? Dlaczego Android nie respektuje połączenia setLayerType?


[w przypadku ma to znaczenie: Ja wykonywania moich testów na Samsung Galaxy Tab 10.1 z systemem Android 3.2]

+0

Sprawdź canvas.isHardwareAccelerated(). Może być inny niż widok – imort

Odpowiedz

0

najpierw wypróbować, aby zmienić rozmiar bitmapy. Użyj createBitmap.