基于先前获得的位置旋转动画

时间:2017-11-15 11:19:29

标签: android animation rotation

我需要在每次点击后将图像旋转一定程度。我使用这段代码:

<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:fillAfter="true"
     >
    <rotate
        android:fromDegrees="0"
        android:toDegrees="-45"
        android:duration="500"

        android:toYScale="0.0"
        android:pivotX="50%"
        android:pivotY="50%"/>
</set>

还试过这个:

ObjectAnimator imageViewObjectAnimator = ObjectAnimator.ofFloat(img,
                "rotation", 0f, 45f);

        imageViewObjectAnimator.setDuration(1000); 
        imageViewObjectAnimator.start();

但每次动画从其初始位置开始,忽略通过prewiosly动画获得的位置。那么, - 每次点击后,如何基本保持图像在一个方向上旋转45度

1 个答案:

答案 0 :(得分:0)

您是否尝试使用矩阵来旋转ImageView?这是我从我的旧应用程序中提取的一些示例代码:

Matrix matrix = new Matrix();
imageView.setScaleType(ImageView.ScaleType.MATRIX);
matrix.postRotate((float) angle, pivotX, pivotY);
imageView.setImageMatrix(matrix);

只需向onTouchListener添加ImageView,定义其外部的前2行和侦听器中的最后2行。然后每按一次,它将按轴数旋转。