Android: Rotate animation get back to its real sta

2019-03-13 01:36发布

问题:

I am going to rotate the image in My app. All Works fine with the Rotation. But while i rotation animation get finish the Image wil return to its previous position. I want is to remain that image to that rotated state and not to get it back to its real state.

So how to make it possible? To rotate image I am using below code:

    <?xml version="1.0" encoding="utf-8"?>

<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:fromDegrees="0"
    android:toDegrees="30"
    android:duration="2000">

</rotate>

and applying it to the ImgeView like:

myImageView.startAnimation(rotateRight);

So, Help me regarding this.

回答1:

See How can I animate a view in Android and have it stay in the new position/size?

Inside the <set tag, use

android:fillAfter="true"
android:fillEnabled="true"

In general, Animation does not alter the actual properties of the View, it only animates it. If you want to change the actual properties, use AnimationListener and listen for onAnimationEnd and make the changes yourself.



回答2:

First get an instance of animation using

Animation anim = AnimationUtils.loadAnimation(context, R.anim.animation);

"R.anim.animation" refers to whatever your animation is.

put an animation listener on this animation using.

anim.setAnimationListener 

Make the view visible in the onAnimationCompleted() method of AnimationListener.

This should work.



回答3:

setFillAfter and setFillEnable is the answer you need.