围绕圆圈旋转图像?

Posted

技术标签:

【中文标题】围绕圆圈旋转图像?【英文标题】:Rotate Images Around a Circle? 【发布时间】:2011-10-13 05:00:16 【问题描述】:

请查看此应用快照:

这是一个银行应用程序。银行标志周围有 6 个按钮。您可以通过单击并按住其中一个图像来旋转图像,然后在任一方向(顺时针或逆时针)移动手指。因此,例如,我可以旋转它们以将Currency Convertor 图像放在Login 图像的位置。

在我的应用中,我也有 6 张图片,我想旋转它们。我该怎么做?

更新:顺便说一句,这是一个 iPhone 应用,但我认为这不是 ios 特有的问题。

【问题讨论】:

【参考方案1】:

假设您不需要更改“菜单”中的项目(启用/禁用/订单/可见性),您可以通过根据需要预先绘制项目的位图并旋转位图来“作弊”。 顶部和背景等的图像可以通过“分层”图像来完成, 所以..

    您有一个您首先绘制的背景图像(可能是表盘周围的“斜角”).. 然后,您可以旋转表盘图像,将菜单选项放置在您想要的位置(在您希望看到背景的任何地方都是透明的......)并将其绘制在背景上

    然后您将指针图像绘制在表盘上(同样,在您希望看到表盘和背景的任何地方都是透明的)。

    最终结果(理论上)与您的屏幕截图非常相似。

android 上,您可能会在屏幕外位图上执行此操作,这样用户就不会看到正在构建的图像,然后绘制整个完成的位图。在 iOS 上,屏幕外缓冲大部分是自动的,因此您可能无需担心。

..如果你想改变物品的状态,它会变得更棘手..我会用未旋转的物品图像(作为片段图像)“构建”表盘,然后旋转并绘制“构建”表盘。

我会亲自将表盘上的阴影显示为另一层(这将是步骤 2.5),使用部分透明的位图使阴影区域变暗。这将使旋转更有说服力,因为阴影会留在正确的位置..

【讨论】:

【参考方案2】:

就这样做

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

【讨论】:

以上是关于围绕圆圈旋转图像?的主要内容,如果未能解决你的问题,请参考以下文章

iOS如何使iPhone指南针标题围绕动画移动?

具有非方形像素的图像旋转的宽度/高度缩放

如何使用MATLAB围绕不是图像中心点的点旋转图像?

根据触摸事件旋转元素

当围绕其中心旋转图像时,为啥需要添加/减去质心?

如何在 Pygame 中围绕偏离中心的枢轴旋转图像