6

在我有的自定義視圖中,我使用Canvas.drawBitmap,其源位圖寬度超過2048px。當啓用硬件加速時,這當然會引起問題,每次調用drawBitmap時,LogCat都會噴出「W/OpenGLRenderer(4968):位圖太大而無法上傳到紋理中」。爲什麼我不能強制我的一個視圖在軟件中渲染?

所以要解決這個問題,我試着在我的視圖上調用setLayerType(View.LAYER_TYPE_SOFTWARE, null)。唯一的問題是它似乎沒有幫助。當我嘗試運行我的應用程序時,LogCat仍然會發出警告,並且沒有任何事物會被繪製。

我不明白爲什麼會這樣。 This article on the Android site明確規定:

您可以禁用硬件加速在運行時的個人觀點用下面的代碼:

myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 

有什麼我做錯了嗎?爲什麼Android不尊重setLayerType調用?


[萬一它的問題:我在三星Galaxy Tab 10.1在執行我的測試運行的是Android 3.2的

+0

Check canvas.isHardwareAccelerated()。它可能與視圖不同 – imort 2013-02-18 08:29:11

回答

0

首先嚐試調整位圖。使用createBitmap。

相關問題