我有兴趣在我的 Android 应用程序中实现基于轮形设备(或饼图形或圆形)的用户界面导航控制机制。
我希望在任何时候都只能看到一半的轮子。也就是说,只有轮子的上半部分应该可见,因为下半部分应该在屏幕边框下方。然后用户可以转动“半轮”以显示隐藏在屏幕边框中的选项。可见的上半部分应该像饼图一样分成三个部分,这样用户可以按其中任何一个来调用一些操作。下图应该解释一下(这是一个有七个(A-G)选项的例子)。
旋转本身应该不难,但我很难理解如何定位轮子,使其一半在实际屏幕之外。我认为加载整个轮子(但隐藏其中的一半)是最好的,因为那是我拥有的图形,并且当用户滑动以显示其他一些选项时,它也将允许流畅的动画。如何让 Android 以这种方式显示轮子?
还有。任何关于如何实现“沿轮子形状滑动”的评论都将不胜感激。
谢谢。
最佳答案
所以对于轮子 - 您很难知道如何定位轮子,因为您正在使用 XML 来对齐对象,并且想使用不存在的“将对象中心对齐到底部”之类的东西。 以下是一种可能行之有效的方法:屏蔽车轮 View 。
Is it possible to mask a View in android?
至于滑动滚轮,我会注册滚轮以获取触摸事件,并仅使用移动事件的水平组件来应用于滚轮的旋转。这种设置在使用旋钮的音频软件中很常见。
但是,如果你想让它以更真实的方式粘在用户的手指上,你需要执行以下操作:
当用户第一次触摸滚轮时,计算从滚轮中心到手指的角度。
每次手指移动时,检查从轮子中心到手指的角度 - 并将轮子旋转自上次触摸事件以来角度的变化量。
获取两点间夹角的公式是这样的:
Float angleInRadians = Math.atan2(point1.y-point2.y, point1.x-point2.x);
关于android - 实现轮状界面导航工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12694343/