我希望将这个复杂的控件移植到我的Android XML Layout中:
我需要按钮(心脏,云,......)和中央旋钮作为ImageButtons,因此它们应该是单独的对象并定位在准确的位置。
问题是如何布置这样复杂的按钮和背景,以便在具有不同分辨率的多个设备上正确显示。
答案 0 :(得分:1)
如果你被允许动态地实现它,这里有一些提示:
创建单独的图片(背景)
半径
放置按钮:
点击测试
轮换强>
答案 1 :(得分:0)
您可能必须拦截onTouchEvent()并处理原始事件。通过这种方式,您可以知道用户手指在图片上的位置。
如果您可以容忍圆形图标下方的方形按钮,则更简单的解决方案是使用RelativeLayout。 (3个状态,正常选择按下。)实际上,您不需要按钮,您可以只查看您的视图。
我不确定您希望用户使用中央旋钮:按下它,用两个或三个手指转动等等。原则上,您可能有一个方形视图,其角落被不可点击的透明覆盖方形视图(或者它们应该是可点击的吗?我们的想法是旋钮不应该接收该区域的点击次数。)
另一种可能的方法是不实现单独的按钮,而是为整个控件组合的每个状态设置一个方形图像。
您肯定必须知道图片的实际尺寸 - 请参阅ViewTreeObserver.OnGlobalLayoutListener
和getMeasuredWidth()
/ getMeasuredHeight()
(当发生点击时,可能会使用后两者,尽管在布局发生之前,它们返回零。)
答案 2 :(得分:0)
您可以从ArcMenu或CircleLayout开始,并对其进行自定义以支持位于中心的小部件。或者您可以从头开始创建自己的布局。好的文章如何提供here。