我一直在尝试将视图放置在任意位置。
My aim:覆盖 JPG/PNG 的某个矩形,给定坐标与 JPG/PNG 相关的,还有一些其他视图,例如图库或一些视频。
我不想使用绝对布局,因为它已被弃用。
因此,我使用relativelayout,定义一个虚拟文本框作为占位符,并将我的视图放在文本框的右侧和下方。
+--------+
|TextView|
| | (x,y)
+--------+-----------------------+
| |
| My View |
| |
+-----------------------+
我的问题是:有没有更健壮、更优雅的方法来做到这一点?
上面建议的方法的问题在于它非常脆弱:需要为每个新屏幕重新计算坐标。我的视图覆盖了下面的东西。它需要准确放置,这是很难做到的。
- I will need to layout the screen again whenever rotated or zoomed or whatever. Worse:
- 在初始化时间(放置图像的典型时间),屏幕坐标无效。将实体放置在屏幕上后,坐标才有效。为了将实体准确地放置在屏幕上,我们需要坐标。先有鸡还是先有蛋的问题:(
- 旋转时,坐标包括边距而不是视图本身的宽度(例如:在纵向 AVD 上,显示纵向 ImageView,然后按 CTRL+F12 进行旋转。ImageView 的左、右、上、下完全是不符合预期)。
- 当缩放动画时,坐标会缩放。
所以我想找到一种更好的方法来做到这一点。
Thanks
M.
不完全理解你在做什么,看起来你正在通过使用RelativeLayout为自己做额外的工作。您尝试在屏幕上放置的内容与任何内容无关,它基于图像中的特定坐标,因此即使您使用其他布局之一,您实际上仍然将某些内容放置在绝对坐标中。
至于 AbsoluteLayout 被弃用,根据我的阅读,这只是为了阻止它的使用,因为它与可变屏幕尺寸相关的缺点。他们无意真正删除它,即使他们这样做,您也可以获取源代码并将其编译到您的项目中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)