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