Android 同时旋转和平移位图

Android 同时旋转和平移位图,android,animation,live-wallpaper,Android,Animation,Live Wallpaper,我正在创建一个实时壁纸,我想在画布上连续旋转图像1,同时图像从左向右移动,以此类推。我可以将它从左向右移动,但在应用旋转时,它会使它在中心不旋转。我的代码如下。我使用了动画,但它在实时壁纸中造成了错误 try { c = holder.lockCanvas(); // clear the canvas c.drawColor(Color.BLACK); Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FI

我正在创建一个实时壁纸,我想在画布上连续旋转图像1,同时图像从左向右移动,以此类推。我可以将它从左向右移动,但在应用旋转时,它会使它在中心不旋转。我的代码如下。我使用了动画,但它在实时壁纸中造成了错误

try {
    c = holder.lockCanvas();
    // clear the canvas
    c.drawColor(Color.BLACK);
    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG);
    if (c != null){
        int width=c.getWidth();
        int degree=0;
        c.drawBitmap(backgroundImage, 0, 0, null);
        Matrix transform = new Matrix();
        // transform.setTranslate(100, 100);
        // transform.preRotate(degree,75 ,100);
        // canvas.drawBitmap(bitmap, transform, null);
        transform.setRotate(degree, x, y);
        c.drawBitmap(image1, transform, null);
        //canvas.rotate(-90);
        if(x>width+100){  
            // assign initial value to start with
            x=-130;
        }
        // change the x position/value by 1 pixel
        x=x+4;
        degree+=45;
        c.restore(); 
    }
}

我没看到你打电话给c.save;调用c.restore时,它需要与以前的c.save配对


从还原时的api:此调用平衡上一个要保存的调用,并用于删除自上次保存调用以来对矩阵/剪辑状态的所有修改。调用restore的次数超过调用save的次数是错误的

看起来度数是一个局部变量,每次传递都会被初始化为0。下次,请不要粘贴这样一个混乱的代码。清理不必要的空间、标签等,以便可能提供帮助的人可以轻松阅读。看到您收到的例外情况也会很有趣。谢谢。这对我很有效。下一次我会关注干净的代码。有可能对多个图像应用矩阵变换吗?我试过了,但效果不好。