是否“拖放”? Android 上的 OpenGL ES 与 Canvas 相比变得更快?
我在 Android 应用程序中使用 Canvas 来制作基本的 2D 图形。我正在实现拖放功能(只需根据触摸事件的 x/y 坐标设置精灵的 x/y 坐标)。它工作正常,但在我的 Android 设备上测试时,如果我在屏幕上快速移动手指,可能会出现轻微的延迟。如果操作太快,位图就无法跟上触摸/拖动动作。
如果我转向 OpenGL ES,这个问题会得到改善吗?如果没有的话,我不想撕掉我的代码。
I am using Canvas for basic 2D graphics in an Android app. I am implementing a drag and drop feature (just setting x/y coordinates of the sprite based on x/y coordinates of the touch event). It works fine, but when testing on my Android device, there can be a slight lag if I move my finger very fast on the screen. The bitmap just isn't keeping up with the touch/drag motion if done quickly.
Would this be improved if I were to move to OpenGL ES? Not wanting to rip out my code if it doesn't.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这基本上取决于您实现拖放的方式。 SurfaceView 可以很快,并且无需切换到 OpenGL ES 只是为了显示 2D...
找出导致延迟的原因。如果延迟是由于触摸事件触发频率不够高而导致“无延迟”,那么即使 OpenGL 也无济于事......
This depends basically on the way you implement your drag&drop. A SurfaceView can be fast and there is no need for switching to OpenGL ES just to show 2D...
Find out what causes the lag. If the lag is caused by the touch events aren't fired often enough to be "lag free" that even OpenGL wont help...
OpenGL 在具有软件加速(例如没有硬件加速)的手机上速度较慢。所以... :)
OpenGL is slower on the phones with a software acceleration (e.g. without hardware acceleration). So... :)