问题“什么是有用的替代AbsoluteLayout?”似乎是一个经常被问到的问题,但从未真正回答过。我的情况如下:
我想定位圆圈(为了简单起见,我使用RadioButtons进行测试),以便圆圈之间的距离与所有可能的显示尺寸成比例。
此外,我需要知道圈子的位置以匹配onTouchEvent。
使用AbsoluteLayout看起来相当容易,因为我可以获得(在运行时)defaultDisplay的宽度和高度,因此我可以将对象放在相对于显示度量的AbsoluteLayout中。
现在我想避免AbsoluteLayout出于显而易见的原因,但是RelativeLayout似乎不是替代方案,因为 - 据我所知 - 人们只能说“把那个对象放在另一个对象旁边”或者下面或者其他什么。如何解决这个问题?
答案 0 :(得分:2)
在我的意见中,实现目标的最佳方法是使用Canvas并自己绘制所有内容。在Canvas中,您可以在运行时获得屏幕信息,并且可以完全控制要绘制的内容。
答案 1 :(得分:0)
如果您只需要绘制自己的形状(并处理所有正常的触摸事件),并且在同一视图中不需要其他UI小部件,则使用Canvas
。
如果您确实需要此视图中的小部件,那么您唯一的选择是AbsoluteLayout
。