onOffsetsChanged:移动位图

时间:2011-07-04 15:30:44

标签: java android live-wallpaper android-canvas

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

这是我的代码部分工作:

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

1 个答案:

答案 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。