onOffsetsChanged:移动位图

发布于 2024-11-18 13:00:10 字数 224 浏览 3 评论 0原文

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

这是我的代码,只能部分工作:

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

谢谢!

i want my Bitmap that has the height of the screen and has a bigger width than the screen to be moved a little bit to the right or left if the user changes the desktop so he can see the entire image.

Here is my code that just works partially:

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

thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无所谓啦 2024-11-25 13:00:10

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

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

mPixels = xPixels;

然后,在您的绘制例程中

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

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

You get exact pixel values via the variables xPixels and yPixels in onOffsetsChanged(). See my answer here: android live wallpaper rescaling

For example, in onOffsetsChanged(), you can set a private class variable

mPixels = xPixels;

Then, in your draw routine

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

Typically, you will want a bitmap twice the width of your screen, with your artwork centered in the middle. For example: 320 pixel width screen -> 640 pixel width bitmap with "center" from 160 to 480. mPixels will be 0 at the left most launcher screen (of 5), -160 at the center, and -320 at the rightmost screen.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文