Я использую анимацию Android для поворота ImageView, но движение очень прерывистое - PullRequest
6 голосов
/ 26 января 2012

Так что это моя XML анимация

<?xml version="1.0" encoding="utf-8"?>
<rotate 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0" 
    android:toDegrees="360" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:duration="3000"
    android:repeatCount="infinite"
    android:interpolator="@android:anim/linear_interpolator" />

Я применяю это к ImageView как средство поворота изображения. Но движение очень изменчиво. Каждый раз, когда изображение поворачивается, оно кажется пропущенным в двух точках поворота, которые находятся на 180 градусов друг от друга. Я не вижу причин, по которым это происходит, кто-нибудь сталкивался с этой проблемой и нашел исправление?

Ответы [ 5 ]

0 голосов
/ 05 февраля 2012

Если этот поворот так важен, я думаю, это очень важная часть вашего пользовательского интерфейса.

В такой ситуации вы должны заинтересоваться простой реализацией OpenGL, которая поможет вам решить вашу проблему.

Я предлагаю использовать http://www.andengine.org/ - просто и легко реализовать.

На AndEngineExamples вы можете найти прекрасный пример кода, который даже слишком много!

0 голосов
/ 04 февраля 2012

Эмулятор всегда изменчив.Попробуйте отладить его на устройстве.Ускорьте вращение, если нет.

0 голосов
/ 31 января 2012

Я не знаю, почему вы не получили правильный результат. Это работает для меня

Вы можете использовать встроенный android.R.anim.linear_interpolator из вашего XML-файла анимации с

android:interpolator="@android:anim/linear_interpolator".

Или вы можете создать свой собственный XML-файл интерполяции в вашем проекте, например, назовите это

Рез / аним / linear_interpolator.xml:

<?xml version="1.0" encoding="utf-8"?>
<linearInterpolator xmlns:android="http://schemas.android.com/apk/res/android" />

И добавьте в свою анимацию XML:

android:interpolator="@anim/linear_interpolator"

и используйте

android:toDegrees="360" 

до

android:toDegrees="359"

как 360 и 0 градусов одинаковы

0 голосов
/ 02 февраля 2012

попробуйте сделать XML-файл в drawable и поместите код для рисования ниже, назовите этот файл my_progress_indeterminate.xml:

<?xml version="1.0" encoding="utf-8"?><animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/your_rotating_image"
android:pivotX="50%"
android:pivotY="50%" />

Извините, но вы должны поместить его в индикатор выполнения, как этопросто, если изображение статично, как и при просмотре изображения, вам не нужно делать какую-либо другую кодировку для этого, просто напишите так в свой XML-файл макета:

 <ProgressBar android:indeterminateDrawable="@drawable/my_progress_indeterminate" android:layout_height="100dp" android:layout_width="100dp"></ProgressBar>
0 голосов
/ 29 января 2012

Попробуйте установить другой интерполятор. К вашему сведению, интерполятор по умолчанию, используемый при создании анимации в Android, не является линейным интерполятором, а вместо этого AccelerateDecelerateInterpolator.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...