实现轮形界面导航工具

时间:2012-10-02 16:26:30

标签: android android-layout user-interface

我有兴趣在我的Android应用程序中实现基于轮形设备(或饼形或圆形)的用户界面导航控制机制。

我希望随时只能看到一半的车轮。也就是说,只有车轮的上半部分应该是可见的,因为下半部分应该低于屏幕的边界。然后,用户可以转动“半轮”以显示屏幕边框隐藏的选项。然后可见的上半部分应分为三个部分,如饼图,因此用户可以按其中任何一个来调用某个动作。下面的图片应该解释(这是七个(A-G)选项的例子)。

http://imgur.com/lNu1F

旋转本身不应该很难,但我很难理解如何定位轮子,使其一半在实际屏幕之外。我认为加载整个轮子(但隐藏一​​半)是最好的,因为这是我拥有的图形,当用户滑动以显示其他选项时,它也将允许平滑的动画。如何让Android以这种方式显示轮子?

另外。任何关于如何实现“沿着轮子形状滑动”的评论都将受到赞赏。

谢谢。

1 个答案:

答案 0 :(得分:1)

所以对于方向盘 - 你知道如何定位方向盘,因为你正在使用XML来对齐你的对象,并希望使用不存在的“对齐对象中心到底部”这样的东西。 这是一种可能正常工作的方法:屏蔽轮子视图。

Is it possible to mask a View in android?

至于向上滑动轮子,我会注册轮子以进行触摸事件,并且仅使用移动事件的水平组件来应用轮子的旋转。此设置在使用旋钮的音频软件中很常见。

但是,如果您希望以更逼真的方式使用户手指,则需要执行以下操作:

  1. 当用户第一次触摸滚轮时,计算从滚轮中心到手指的角度。

  2. 每次手指移动时,检查从车轮中心到手指的角度 - 并将车轮旋转角度从最后一次触摸事件改变的量。

  3. 获得两点之间角度的公式是:

    Float angleInRadians = Math.atan2(point1.y-point2.y, point1.x-point2.x);