如何在android中慢慢旋转图像?

时间:2016-06-16 08:25:11

标签: android matrix bitmap rotation

我想在Android上以缓慢的方式旋转图像。 我可以通过创建一个位图来实现这一点 Matrix类的帮助。但我不知道如何让它变慢,就像旋转需要3秒钟一样。

3 个答案:

答案 0 :(得分:1)

<强>旋转

旋转动画使用标记。对于旋转动画,所需标签为android:fromDegreesandroid:toDegrees,用于定义旋转角度。

时钟明智 - 使用积极的toDegrees值

反时钟 - 使用负值toDegrees值

rotate.xml

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

</set>

保存在动画文件夹

enter image description here

public class AnimationActivity extends Activity{

    ImageView img;
    Animation rotate;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fadein);

        img = (ImageView) findViewById(R.id.myimageid);

        // load the animation
        rotate = AnimationUtils.loadAnimation(getApplicationContext(),
                R.anim.rotate);
        img.startAnimation(rotate);

    }
}

Complete Tutorial

答案 1 :(得分:1)

在Kotlin中,您可以使用ObjectAnimator超级轻松地做到这一点。例如:

ObjectAnimator.ofFloat(view, "rotationX", 180f).apply {
duration = 2000
start()
}
  • 视图:您要旋转的视图
  • “ rotationX” :您要更改的propertyName。
    “ rotationX”可让您旋转进出屏幕
    “ rotationY”可让您顺时针/逆时针旋转
  • 180f :要旋转视图多少度
  • 持续时间:动画完成所需的毫秒数

答案 2 :(得分:0)

您可以使用旋转动画来实现此目的。

在res directoy下创建anim文件夹,放置在这个xml中。

rotate_around_center_point.xml

get

将动画设置为这样查看。

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

    <rotate
        android:duration="2500"
        android:interpolator="@android:anim/linear_interpolator"
        android:pivotX="50%"
        android:pivotY="50%"
        android:repeatCount="infinite"
        android:repeatMode="restart"
        android:toDegrees="360" />

</set>