onOffsetsChanged:移动位图

我希望我的Bitmap具有屏幕的高度,并且具有比屏幕更大的宽度,如果用户更改桌面以便他可以看到整个图像,则向右或向左移动一点点。

这是我的代码部分工作:

int x = -1*(int)((xOffset*bmp.getWidth())); canvas.drawBitmap(bmp, x, 0, null); 

谢谢!

您可以通过onOffsetsChanged()中的变量xPixels和yPixels获得精确的像素值。 在这里看到我的答案: android动态壁纸重新缩放

例如,在onOffsetsChanged()中,您可以设置私有类变量

 mPixels = xPixels; 

然后,在你的绘图程序中

 holder = getSurfaceHolder(); c = holder.lockCanvas(); c.translate(mPixels, 0f); // c.drawBitmap ... goes here :-) 

通常,您需要一个位图宽度为屏幕宽度两倍的位图,并且您的图稿位于中间。 例如:320像素宽屏幕 – > 640像素宽度位图,“中心”从160到480. mPixels在最左侧启动器屏幕(5)处为0,在中心处为-160,在最右侧屏幕处为-320 。