我在Android應用程序中使用Canvas繪製基本2D圖形。我正在實現一個拖放功能(只需根據觸摸事件的x/y座標設置精靈的x/y座標)。它工作正常,但在我的Android設備上進行測試時,如果我在屏幕上快速移動手指,可能會出現輕微的延遲。如果快速完成位圖,則不能跟上觸摸/拖動動作。在OpenGL ES和Canvas for Android下,「拖放」會變得更快嗎?
如果我轉移到OpenGL ES,這會得到改善嗎?如果沒有,我不想撕掉我的代碼。
我在Android應用程序中使用Canvas繪製基本2D圖形。我正在實現一個拖放功能(只需根據觸摸事件的x/y座標設置精靈的x/y座標)。它工作正常,但在我的Android設備上進行測試時,如果我在屏幕上快速移動手指,可能會出現輕微的延遲。如果快速完成位圖,則不能跟上觸摸/拖動動作。在OpenGL ES和Canvas for Android下,「拖放」會變得更快嗎?
如果我轉移到OpenGL ES,這會得到改善嗎?如果沒有,我不想撕掉我的代碼。
這基本上取決於您實施拖放的方式。一個SurfaceView可以很快,並且不需要切換到OpenGL ES來顯示2D ...
找出導致滯後的原因。如果延遲是由觸摸事件引起的,那麼即使OpenGL無法幫助,它也不會被「觸發」。
帶有軟件加速(例如,沒有硬件加速)的手機的OpenGL速度較慢。所以... :)
觸摸事件通常會被頻繁觸發,並且可能會降低您的幀速率。直到2.3我相信這是一個bug,所以你不得不忽略一些觸摸事件。 – smith324 2011-02-06 19:28:58