Android Animate Rotate

Я сделал некоторые копания в Android-коде и увидел использование в неопределенном индикаторе выполнения. После попытки создать мой собственный drawable с этим тегом:

<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/spinner_pia" android:pivotX="50%" android:pivotY="50%" android:framesCount="12" android:frameDuration="100" /> 

Я получаю сообщение об ошибке: «Идентификатор ресурса не найден для атрибута« frameDuration »в пакете« android »- это означает, что frameDuration является частным атрибутом. Есть ли способ использовать эту функцию «анимация-поворот»?

Моя задача – заменить неопределенный индикатор выполнения системы по умолчанию. Я бы хотел сделать это с минимальным количеством кода (возможно, по возможности измените несколько атрибутов). Используя представление ProgressBar, установите:

 android:indeterminateOnly="true" android:indeterminateBehavior="cycle" android:indeterminateDuration="3500" android:indeterminateDrawable="@drawable/pia_sivuvator" 

И point "@ drawable / pia_sivuvator" к этому объекту сделали бы мою задачу такой же изящной, как и они, но я застрял на этих частных атрибутах.

Помогите?

Solutions Collecting From Web of "Android Animate Rotate"

Я столкнулся с тем же вопросом. Вы можете исключить эти параметры (framesCount и frameDuration), и это может сработать для вас. Я попытался просто исключить их, и он был анимирован, но ширина / высота, которую я устанавливал, не соблюдались, поэтому я создал просто анимацию вращения и ImageView для ее применения. Вот файл анимации (res / anim / clockwise_rotation.xml):

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

Затем вы просто раздуваете анимацию, устанавливаете количество повторов и запускаете ее из представления

 Animation rotation = AnimationUtils.loadAnimation(this, R.anim.clockwise_rotation); rotation.setRepeatCount(Animation.INFINITE); myView.startAnimation(rotation); 

Вместо создания анимации (требуется больше кода, а не только для конфигурации XML), используйте layer-list качестве ресурса с возможностью рисования. Весьма интересно, что layer-list более жидкий, чем animated-rotate .

 <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <rotate android:drawable="@drawable/spinner_loading" android:pivotX="50%" android:pivotY="50%" android:fromDegrees="0" android:toDegrees="360"/> </item> </layer-list> 

Тогда, конечно, используйте его в стилях, как писал Марио Ленци:

 <style name="YourProgressBarStyle" parent="@android:style/Widget.ProgressBar"> <item name="android:indeterminateDrawable">@drawable/progress_bar_indeterminate</item> </style> 

Я не знаю, как работать с частными атрибутами, у меня такая же проблема.

Кстати, если вы хотите изменить те атрибуты ProgressBar:

 android:indeterminateOnly="true" android:indeterminateBehavior="cycle" android:indeterminateDuration="3500" android:indeterminateDrawable="@drawable/pia_sivuvator" 

Вы можете сделать это легко с помощью рамки Styles, определяющей в values/styles.xml стиль ProgressBar, расширяющий стандартный андроид:

 <style name="YourProgressBarStyle" parent="@android:style/Widget.ProgressBar"> <item name="android:indeterminateDrawable">@drawable/progress_bar_indeterminate</item> </style> 

А затем применить его к строке выполнения в файле макета xml.

 ... <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/YourProgressBarStyle"/> ... 

Я решил это, используя этот drawable xml. Несмотря на то, что на новых версиях Android это выглядит просто гладко:

 <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/spinner_pia" android:fromDegrees="0" android:pivotX="50%" android:pivotY="50%" android:toDegrees="1080" /> 

Вот простое объяснение анимации вращения. Попробуйте это, это поможет вам

http://androidtutorials60.blogspot.in/2013/09/simple-rotate-animation-in-android.html

 <rotate xmlns:android="”http://schemas.android.com/apk/res/android”"> android:duration="4000" android:fromdegrees="0" android:pivotx="50%" android:pivoty="50%" android:todegrees="360" android:toyscale="0.0" </rotate>