我正在创建一个实时壁纸与视差滚动。我读过这篇文章:Parallax effect scrolling of live wallpaper background。但当我改变桌面时,背景移动错误(如果我改变桌面从左到右,图片从右到左)。如何改变方向?
代码段:public void Init(Bitmap bitmap){
bg = new BitmapFactory().decodeResource(context.getResources(), R.drawable.thunder);
bg = Bitmap.createScaledBitmap(bg, (int)(width*1.4), height, true);
}
float dx = 0.0f;
@Override
public void onOffsetsChanged(float xOffset, float yOffset,
float xStep, float yStep, int xPixels, int yPixels) {
dx = (width - bg.getWidth()) * (1 - xOffset);
}
private void doDraw(Canvas canvas) {
canvas.save();
canvas.translate(dx, 0);
canvas.drawBitmap(bg, 0, 0, null);
canvas.restore();
}
最佳答案:
我知道这是一个老问题,但由于这是谷歌的一个很高的结果,你所需要做的就是翻转你的翻译标志。canvas.translate(-dx, 0);
这将有效地逆转用户刷卡时背景滚动的方向。希望这能帮助别人。