1

我正在为一个 android xml 动画而苦苦挣扎。我想围绕其中心点逆时针旋转图像。

这是我的动画xml:

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

<rotate
    android:duration="1000"
    android:repeatCount="infinite"
    android:repeatMode="restart"
    android:fromDegrees="360"
    android:toDegrees="0"
    android:pivotX="0.5"
    android:pivotY="0.5"         
    android:interpolator="@android:anim/linear_interpolator"        
   />

否,当前动画围绕点 x=0 旋转图像;y=0 。

4

2 回答 2

3

代表@Mahfa 回答

您必须将 pivotX 和 pivotY 设置为“50%”

重要的部分是百分比。

于 2014-05-01T19:40:56.273 回答
0

我认为您需要使用 Matrix 对象。我前段时间做过同样的事情,我记得我和你有同样的问题:

Bitmap targetBitmap = Bitmap.createBitmap(targetWidth, targetHeight, config);
Canvas canvas = new Canvas(targetBitmap);
Matrix matrix = new Matrix();
matrix.setRotate(mRotation,source.getWidth()/2,source.getHeight()/2);
canvas.drawBitmap(source, matrix, new Paint());

编辑:将此功能与计时器处理程序一起使用

public Bitmap rotateImage(int angle, Bitmap bitmapSrc) {
Matrix matrix = new Matrix();
matrix.postRotate(angle);
return Bitmap.createBitmap(bitmapSrc, 0, 0, 
        bitmapSrc.getWidth(), bitmapSrc.getHeight(), matrix, true);

}

于 2014-04-04T12:01:14.237 回答