Android:我可以在动态壁纸中添加图层吗?

时间:2012-03-02 13:36:38

标签: android android-canvas live-wallpaper

我想创建一个动态壁纸,我希望将底部背景幻灯片与滑动主屏幕页面放在一起,而另一个图层始终位于背景顶部并位于应用程序图标下方。

这可能吗?如何做到这一点?

1 个答案:

答案 0 :(得分:1)

您必须覆盖public void onOffsetsChanged (float xOffset, float yOffset, float xOffsetStep, float yOffsetStep, int xPixelOffset, int yPixelOffset) 使用xOffset的值,您可以定义一个源矩形,它可以提取部分位图并在屏幕上绘制该部分。

此图片可让您了解xOffset的工作原理: 假设有5个主屏幕页面, android xOffset example 如果您的图片尺寸为960 x 800(宽x高),并且每次想要绘制尺寸为480 x 800的部分,那么您可以定义一个坐标为源矩形:

x1 = xOffset * (960 - 480); y1 = 0; x2 = x1 + 480, y2 = 800;

然后,您的目标矩形将是您要绘制到的屏幕部分。 然后,您可以使用public void drawBitmap (Bitmap bitmap, Rect src, Rect dst, Paint paint)方法将位图绘制到屏幕上。

我很久以前就使用过这种技术。在发布之前我没有在代码中检查这个,并且可能有替代方法(比如使用canvas.translate())。但希望这可以帮助你开始。 :)