用手指移动视图

时间:2012-02-15 08:46:20

标签: android android-layout

我不久前开始学习Android,并且有一个问题,我应该用哪种方法来解决这个简单的任务。让我们假设我有一个视图(可能是一个按钮),我希望用户能够用手指在屏幕上移动它。在弃用AbsoluteLayout之前,正确的方法显而易见。我会根据相应的事件改变我的观点位置。但现在是什么?

3 个答案:

答案 0 :(得分:5)

创建自己的自定义视图并添加onTouch事件侦听器。这很简单。解释得非常好here

答案 1 :(得分:0)

如果您尝试移动视图以通过图库中的图像浏览应用程序或页面,Android会提供widgets的集合来执行此类操作。如果你想尝试平移大图像,也许这会有所帮助:Image in Canvas with touch events

答案 2 :(得分:0)

我正在使用FrameLayout并更新marginLeft和marginTop

您可以向框架布局添加多个子项,但由于多个分辨率问题,建议不要这样做。

来自android docs:

  

FrameLayout旨在阻挡屏幕上要显示的区域   单个项目。通常,FrameLayout应该用于保存单个   子视图,因为它可能很难组织子视图   在没有孩子的情况下可以扩展到不同屏幕尺寸的方式   相互重叠。但是,您可以将多个子项添加到a   FrameLayout并控制它们在FrameLayout中的位置   使用android:layout_gravity为每个孩子分配重力   属性。

此“警告”不适用于您的情况,因为您是根据用户触摸事件明确设置边距。