我希望我的Bitmap具有屏幕的高度,并且如果用户更改桌面以便他可以看到整个图像,则屏幕的宽度将比屏幕稍微向右或向左移动一点。
这是我的代码部分工作:
int x = -1*(int)((xOffset*bmp.getWidth()));
canvas.drawBitmap(bmp, x, 0, null);
谢谢你!
答案 0 :(得分:1)
您可以通过onOffsetsChanged()中的变量xPixels和yPixels获得精确的像素值。请在此处查看我的回答:android live wallpaper rescaling
例如,在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。