studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones android animation progress-bar customization

para - manual de programacion android pdf



Android Animate Girar (5)

Aquí está la explicación simple de la animación de rotación, intente esto, esto lo ayudará

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>

Hice un poco de excavación en el código de Android, y vi el uso de en la barra de progreso indeterminado. después de tratar de crear mi propio dibujo con esta etiqueta:

<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" />

Aparece un error: "No se ha encontrado ningún identificador de recurso para el atributo ''frameDuration'' en el paquete ''android''", lo que significa que frameDuration es un atributo privado. ¿Hay alguna manera de usar esta función de "rotación animada"?

Mi tarea es reemplazar la barra de progreso indeterminada predeterminada del sistema. Me gustaría hacerlo con la menor cantidad de código posible (solo cambie algunos atributos si es posible). Usando la vista ProgressBar, estableciendo:

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

y apuntar "@ drawable / pia_sivuvator" a ese objeto haría que mi tarea fuera tan elegante como vinieran, pero estoy atrapado en esos atributos privados.

¿ayuda?


En lugar de crear una animación (se requieren más códigos, no solo la configuración XML), utilice layer-list como recurso dibujable. Es bastante interesante que layer-list sea ​​mucho más fluida que 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>

Luego, por supuesto, usarlo en los estilos como Mario Lenci escribió:

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


Lo resolví usando este xml dibujable. Aunque parece ser sencillo en las versiones más nuevas de 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" />


Me encontré con el mismo problema. Puede excluir esos parámetros (framesCount y frameDuration), y puede funcionar para usted. Intenté simplemente excluirlos y se animó bien, pero el ancho / alto que estaba configurando no se respetaba, así que terminé creando una animación de rotación simple y un ImageView para aplicarlo. Aquí está el archivo de animación (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" />

Luego, simplemente infle su Animación, establezca el conteo repetido e inicie desde la Vista

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


No sé cómo evitar los atributos privados, tengo el mismo problema.

Por cierto, si quiere cambiar esos atributos de ProgressBar:

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

puede hacerlo fácilmente con el marco de Styles que define en el archivo values/styles.xml un estilo ProgressBar que extiende el estándar de Android:

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

y luego aplicarlo a la barra de progreso en el archivo de diseño xml.

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