Android 同时旋转和平移位图
我正在创建一个实时壁纸,我想在画布上连续旋转图像1,同时图像从左向右移动,以此类推。我可以将它从左向右移动,但在应用旋转时,它会使它在中心不旋转。我的代码如下。我使用了动画,但它在实时壁纸中造成了错误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
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。下次,请不要粘贴这样一个混乱的代码。清理不必要的空间、标签等,以便可能提供帮助的人可以轻松阅读。看到您收到的例外情况也会很有趣。谢谢。这对我很有效。下一次我会关注干净的代码。有可能对多个图像应用矩阵变换吗?我试过了,但效果不好。