我刚才有一个关于你如何处理这个问题的快速问题。我不确定你是否看过游戏Paper Toss或类似的东西,你把手指放在现有的图像上拖动它(比如通过拉动imageview)然后放开使图像在屏幕上移动。
要做那样的事情,处理这种图形的最佳方法是什么(主要关注图形运动和触摸事件): - 拥有一个imageview和OnTouchListener,它将获得x / y并对每个X / Y执行translateAnimation,然后在触摸解除时在屏幕上执行translateAnimation
<-TO -OR具有表面视图并在Canvas上绘制图像的位图,并使OnDraw方法获取触摸事件的X / Y坐标并相应地绘制位图我总是很困惑哪一个和为什么一起? (我的目标是Android 2.3,所以拖放是超出此范围的东西)
PS:我认为Canvas和surfaceview总是在一起,所以如果我错了,请纠正我
答案 0 :(得分:1)
PS:我认为Canvas和surfaceview总是在一起所以如果我错了就纠正我
是的,你是对的,他们都聚在一起。
首先是动画(转换,旋转,缩放),我们只需更改ImageView在特定时间内的位置,视图(同时显示动画的效果)。然后它将处于原来的位置。
但是在画布中,我们在它的坐标基础上永久地更改ImageView(我们在这里绘制Bitmap而不是图像视图)。假设您想要将手指触摸的地方更改为Image,然后使用OnTouchEvent()
最后,我会说根据我们的要求,没有什么是最好的。 Surface和canvas主要用于游戏环境。
答案 1 :(得分:0)
任何gfx密集型内容,即任何使用精灵的内容,都应该在SurfaceView
或GLSurfaceView
上完成,以获得最佳性能。对于动画或非动画的非动态图像/位图,标准View
/ ViewGroup
实现正常。
SDK示例LunarLander
是一个很好的起点。