Поворот ImageView в Android вокруг фиксированной точки с помощью RotateAnimation - PullRequest
4 голосов
/ 07 марта 2011

Я бы хотел непрерывно поворачивать изображение на 360 градусов вокруг фиксированной точки. Я уже видел несколько примеров, таких как:

RotateAnimation anim = new RotateAnimation(0, 360,150,150);
anim.setInterpolator(new LinearInterpolator());
anim.setRepeatCount(Animation.INFINITE);
anim.setDuration(2000);
[imageview].startAnimation(anim);

Это поворачивает изображение, но делает это по дуге / круговой траектории. То есть. изображение движется / вращается круговыми движениями, но не остается неподвижным в исходном месте.

То, что я в основном хочу, это подражать вращению рук Ветряной Мельницы.

Есть мысли?

Ответы [ 4 ]

7 голосов
/ 31 декабря 2012

Используйте этот код

RotateAnimation rotateAnimation1 = new RotateAnimation(0, 360,
        Animation.RELATIVE_TO_SELF, 0.5f,
        Animation.RELATIVE_TO_SELF, 0.5f);
rotateAnimation1.setInterpolator(new LinearInterpolator());
rotateAnimation1.setDuration(duration);
rotateAnimation1.setRepeatCount(0);
img.startAnimation(rotateAnimation1);

, это повернёт ваше изображение в его фиксированное положение, то есть вокруг себя

0 голосов
/ 24 марта 2015

я скажу установить точку поворота для просмотра изображений .. x = imgView.getWidth () / 2 и y = imgView.getHeight () / 2

0 голосов
/ 07 марта 2011

Хорошо, так что я отлично заработал после некоторой настройки.Как сказал Макарс, это действительно связано с отступом вокруг ImageView.

. Чтобы решить эту проблему, все, что вам нужно сделать, это поместить ваш ImageView внутрь RelativeLayout:

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"        
    >

    <ImageView
        android:id="@+id/imageview"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:src="@drawable/image"
        />

</RelativeLayout>
0 голосов
/ 07 марта 2011

Это может быть вызвано заполнением.Отметьте похожий вопрос .

...