我只是有一个简短的问题,关于您通常如何处理这个问题。我不确定您是否看过游戏 Paper Toss 或任何类似的游戏,您可以将手指放在现有图像上拖动它一点(比如说通过拉动 ImageView )然后松开,这会使该图像在屏幕上移动。
要做这样的事情,处理此类图形的最佳方式是什么(主要关注图形运动和触摸事件): - 有一个 imageview 和 OnTouchListener,它将获取 x/y 并对每个 X/Y 执行 translateAnimation,然后在触摸解除时对屏幕上的图像执行 translateAnimation
-或者有表面 View 并在 Canvas 上绘制图像的位图,然后让 OnDraw 方法获取触摸事件的 X/Y 坐标并相应地绘制位图
我总是很困惑应该选择哪一个,为什么? (我的目标是 Android 2.3,所以拖放超出了这个范围)
PS:我假设 Canvas 和 surfaceview 总是在一起,所以如果我错了请纠正我
最佳答案
PS:我假设 Canvas 和 surfaceview 总是在一起,所以如果我错了请纠正我
是的,你是对的,他们都在一起了。
首先在动画(平移、旋转、缩放)中,我们只是在特定时间更改 ImageView 的位置、 View (同时它显示动画效果)。然后它会回到原来的位置。
但是在 canvas 中,我们永久地根据它的坐标更改 ImageView(我们在这里绘制位图而不是 ImageView )。假设您想更改手指触摸的图像,然后使用从 OnTouchEvent()
最后我要说的是,根据我们的要求,没有什么是最好的。表面和 Canvas 主要用于游戏环境。
关于android - 使用 Canvas (surfaceview) 或使用带有平移动画的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10344374/