我不久前开始学习Android,并且有一个问题,我应该用哪种方法来解决这个简单的任务。让我们假设我有一个视图(可能是一个按钮),我希望用户能够用手指在屏幕上移动它。在弃用AbsoluteLayout之前,正确的方法显而易见。我会根据相应的事件改变我的观点位置。但现在是什么?
答案 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为每个孩子分配重力 属性。
此“警告”不适用于您的情况,因为您是根据用户触摸事件明确设置边距。