我想創建一個Canvas
實例,它是太大,通過一個堆內存Bitmap
進行備份,讓說5000x5000像素(約95MB)。我想這非常大的Canvas
所有的各種抽獎操作直接發送到一個位圖文件。不幸的是,Bitmap
類的Android標final
所以我不能提供我自己的實現。有沒有人有一個想法是否以及如何實現?我不是在表演很感興趣,10秒寫做幾十繪製操作是好的,我們的目標是出不去了內存不足的錯誤。是否有可能建立在Android的支持畫布文件?
1
A
回答
0
沒有任何方法可以提供您所要求的功能,即使存在,對文件執行此類操作也會帶來可怕的性能。
可能唯一合理的方法是隻存儲繪圖操作,並創建一個與設備屏幕大小相同的Canvas
,該設備屏幕可用作5000x5000像素畫布中的「窗口」。有關詳細解釋見我的回答一個相關的問題在這裏:Android - is there a possibility to make infinite canvas?
0
這裏有一個想法,我有我認爲理論上可以工作,但大概會需要太多的努力:
創建的Canvas
一個子類,它包含裏面有很多小的Canvas
對象。這些將代表整體Canvas
的瓷磚。這些瓷磚應該足夠小,以便一次至少放入一個內存中。針對每個內部瓦片Canvas
創建一個文件,並使用它來從Buffer
存儲未壓縮的像素數據。
當在整體Canvas
上發生繪製操作時,找出需要繪製哪些圖塊。每次一個將該文件的文件讀入內存中的Bitmap
,並執行可能的剪切繪製,然後將Bitmap
數據保存回該文件並關閉它。
從理論上講,聽起來可能,實際上聽起來像是太多的工作。
相關問題
- 1. 是否有可能建立透明畫布
- 2. Android Wear是否能夠支持動畫
- 3. Wavefront .obj文件是否支持動畫?
- 4. 是否有可能在android中創建獨立的BroadcastReceiver?
- 5. Android Webview是否支持CSS3 WebKit動畫?
- 6. Android API是否支持KML文件?
- 7. 是否有可能/建議跳過roxygen以支持roxygen2?
- 8. 畫布是否支持嵌套上下文保存?
- 9. 是否有可能生產獨立的haskell可執行文件
- 10. 是否有可能從使用Javascript的畫布獲取筆畫?
- 11. 是否有可能知道Android手機是否支持OTG而不生根?
- 12. 是否可以在Android畫布上設置支持所有設備屏幕尺寸的URL上的圖像?
- 13. Android是否支持手錶支持NFC
- 14. 是否有可能在Android
- 15. 是否有可能在android
- 16. 是否有可能在android
- 17. 是否有可能在android
- 18. 是否有可能擁有支持ActiveRecord的Utility類?
- 19. 是否有可能沒有MIB支持的SNMP代理?
- 20. Android - 支持多屏幕畫布問題
- 21. 是否有可能在android中定義的視圖中加載畫布?
- 22. 是否有可能在Visual Studio中與customtool建立文件關聯?
- 23. Powerpoint的Liveweb插件:支持HTML5畫布?
- 24. 是否有可能爲dataTransfer.files支持功能測試?
- 25. Android Keystore重建?是否有可能
- 26. 是否有可能擁有支持1.5,1.6並支持不同屏幕密度的Android build.xml?
- 27. Facebook是否不再支持傳統的畫布應用程序?
- 28. 如何檢查文檔文件是否可以在Android中支持
- 29. Android WebDriver是否支持set_page_load_timeout?
- 30. ORMLite是否支持Android?