Rotación de fondo dentro de ImageView (Android Studio - Java)
Sep 26 2020
Estoy tratando de desarrollar una aplicación para Android. Sin embargo, me enfrenté a un problema y es que quiero rotar el colorido fondo cuadrado 360 grados. Va a ser un efecto de animación. Gire continuamente. ¿Es posible?
Intenté view.animate (). Rotate () pero, por supuesto, rota imageview. Solo quiero rotar el fondo dibujable en imageview.
Mi meta
Diseño de actividad
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/border"
android:contentDescription="@string/todo"
android:cropToPadding="true"
android:padding="10dp"
android:scaleType="centerCrop"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent />
</androidx.constraintlayout.widget.ConstraintLayout>
Fondo (@ drawable / border)
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="270"
android:endColor="@color/colorYellowGreen"
android:type="linear"
android:centerColor="@color/colorBlue"
android:startColor="@color/colorPink" />
<corners android:radius="5dp" />
Respuestas
SnefruClone Oct 10 2020 at 08:10
Usé rotar etiqueta en la lista de animación.
<?xml version="1.0" encoding="utf-8"?>
<animation-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:duration="3000">
<rotate
android:fromDegrees="90"
android:toDegrees="180"
android:drawable="@drawable/border"
android:pivotY="50%"
android:pivotX="50%"/>
</item>
<item
android:duration="3000">
<rotate
android:fromDegrees="180"
android:toDegrees="270"
android:drawable="@drawable/border"
android:pivotY="50%"
android:pivotX="50%"/>
</item>
<item
android:duration="3000">
<rotate
android:fromDegrees="270"
android:toDegrees="360"
android:drawable="@drawable/border"
android:pivotY="50%"
android:pivotX="50%"/>
</item>
<item
android:duration="3000">
<rotate
android:fromDegrees="0"
android:toDegrees="90"
android:drawable="@drawable/border"
android:pivotY="50%"
android:pivotX="50%"/>
</item>
</animation-list>
El código anterior puede ser opcional, pero esta es la parte más importante para la rotación continua.
AnimationDrawable animationDrawable =
(AnimationDrawable) mQRImage.getBackground();
animationDrawable.setExitFadeDuration(3000);
animationDrawable.start();