围绕圆形旋转图像?

8
请查看这个应用程序快照:
这是一款银行应用程序。它有6个按钮围绕着银行标志。您可以通过在其中一个按钮上单击并按住,然后向任何方向(顺时针或逆时针)移动手指来旋转图像。例如,我可以旋转它们以将“货币转换器”图像放在“登录”图像的位置。
在我的应用程序中,我也有6个图像,我想旋转它们。我该怎么做?
更新:顺便说一句,这是一款iPhone应用程序,但我认为这不是iOS特定的问题。
2个回答

0

假设您不需要更改“菜单”中的项目(启用/禁用/排序/可见性),您可能可以通过具有所需预绘制项的位图并旋转该位图来“欺骗”。

顶部图像和背景等可以通过“分层”图像来完成,因此...

  1. 首先绘制背景图像(可能是表盘周围的“斜面”)。
  2. 然后旋转表盘图像以将菜单选项放置在所需位置(任何您想要看到背景的地方都是透明的),并将其绘制在背景上。
  3. 然后在表盘上绘制指针图像(同样,在您希望看到表盘和背景的任何地方都是透明的)。

    • 理论上,最终结果将非常类似于您的屏幕截图。

在Android上,您可能会在屏幕外的位图上执行此操作,以便用户看不到正在构建的图像,然后绘制整个完成的位图。在iOS上,屏幕外缓冲区大多是自动的,因此您可能不需要担心它。

如果您想更改项目的状态,此时情况会变得更加棘手。我会使用项目图像(作为分割图像)未旋转来"构建"表盘,然后旋转并绘制"构建"的表盘。

我个人会将表盘上的阴影显示为另一层(第2.5步),使用部分透明位图使阴影区域变暗。这会使旋转更具说服力,因为阴影将保持在正确的位置。


0

只需这样做

RotateAnimation rAnim = new RotateAnimation(0, 359, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
rAnim.setDuration(1000);
image.startAnimation(rAnim);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接