代码之家  ›  专栏  ›  技术社区  ›  oleg_phorostyna

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

  •  1
  • oleg_phorostyna  · 技术社区  · 8 年前

    每次点击后,我都需要将图像旋转一定的角度。Im使用此代码:

    <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动画获得的位置。那么,-basicaly如何在每次点击后将图像向一个方向旋转45度???

    1 回复  |  直到 8 年前
        1
  •  0
  •   Sipty    8 年前

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

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

    只需添加一个 onTouchListener 图片框 ,定义其外部的前2行和侦听器内部的最后2行。然后每次按下时,它都会按枢轴量旋转。