一种可能的实现如下:
- 创建一个看不见的球体。球体的顶点被计算为标签的位置,但不被绘制。您可以在 SO 的几个答案中找到球体算法,例如这里。
- 将标签附加到球体上的不同点,每个标签始终面向相机。
- 根据用户拖动动作旋转球体
- 根据 z 值淡化单词。
- 点击标签将旋转不可见的球体以将标签带到前面。
这可以在 SurfaceView 或带有 OpenGL 的 GLSurfaceView 中实现。如果您使用 SurfaceView,您可能需要将标签/顶点的数量保持在较低水平以使其顺利运行。
这是一个关于如何为 Android 创建旋转标签球的教程。