Вращать изображения по кругу?

пожалуйста, взгляните на этот снимок приложение:

enter image description here

это банковское приложение. он имеет 6 кнопок вокруг логотипа банка. Вы можете вращать изображения щелчком мыши и удерживать в одном из них и перемещать палец в любом направлении (по часовой стрелке или против часовой стрелки). Так, например, я могу повернуть их, чтобы поставить Currency Convertor изображение на месте Login изображения.

в моем приложении у меня тоже есть 6 изображений, я хочу их повернуть. Как я могу это сделать?

Update: кстати, это приложение для iPhone, но я думаю, что это не проблема iOS.

3 ответов


Я создал такое меню в одном из моих проектов с помощью Меню Круг и он создается путем модификации этого учебник .

Если вы хотите изменить его выше учебник поможет вам.


предполагая, что вам не нужно менять элементы в "меню" (включить/отключить/заказать/видимость), вы, вероятно, можете "обмануть", имея растровое изображение с предварительно нарисованными элементами и вращая растровое изображение. Изображение над верхней частью и предпосылкой etc можно сделать путем "наслаивать" изображения, так..

  1. у вас есть фоновое изображение (возможно, "скос" вокруг циферблата), которое вы рисуете первым..
  2. затем вы поворачиваете изображение набора, чтобы разместить опцию меню, где вы хотите он (прозрачный в любом месте, где вы хотите, чтобы фон был виден..) и нарисуйте его на фоне
  3. затем вы нарисуете изображение указателя на циферблате (опять же, прозрачный в любом месте, где вы хотите, чтобы циферблат и фон были видны).

    • конечный результат (теоретически) будет выглядеть очень похоже на ваш скриншот.

на Android вы, вероятно, сделаете это на внеэкранном растровом изображении, чтобы пользователь не видел создаваемое изображение, а затем нарисуйте все готовое растровое изображение. В iOS закадровая буферизация в основном автоматический, поэтому вам, вероятно, не нужно беспокоиться об этом.

..она становится сложнее, если вы хотите изменить состояние вещей.. Я бы "построил" циферблат с изображениями элементов (как сегментные изображения) без вращения, затем повернул и нарисовал "встроенный" циферблат.

Я бы лично показал тени на циферблате в качестве другого слоя (это был бы шаг 2.5), используя частично прозрачное затемнение растрового изображения область тени. Это сделает вращение более убедительным, поскольку тени останутся в правильных местах..


Просто сделай это

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