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