Android LIVE壁纸方法?

时间:2011-02-15 19:18:47

标签: android image live-wallpaper

我对Android开发完全陌生,我对制作动态壁纸很感兴趣。我在考虑循环一组图片而不是绘制动画。这是一种可行的方法吗?如果可能的话,这是一个合适的或理想的方式,它是否会占用内存,我是否需要具有不同分辨率的图像,因为碎片?(数百种不同的设备)

提前致谢:)

3 个答案:

答案 0 :(得分:2)

当然,它应该相当简单。

壁纸引擎的主要部分是绘图当然。您需要手动处理绘图,没有简单的方法来循环图像...您需要对其进行编码。您必须持续监控已经过的时间并根据该时间调整显示的图像。您将获得一个Canvas对象来绘制,并且它在代码运行期间完成。

Wallpaper引擎类有一个名为onSurfaceChanged的事件,它为您提供要绘制的Surface的宽度和高度。每次屏幕尺寸改变时都会调用它(例如,如果手机进入横向模式)。您需要拥有能够处理所有设备类型的任何宽度或高度组合的代码。您需要决定是否要拉伸,居中,平铺或裁剪(或其组合)源图像以适合任何特定的屏幕尺寸。我建议缩放比例以使图像比屏幕更高或更宽,并在完成后垂直或水平(裁剪额外的位)使图像居中。我个人只使用一个源大小并调整大小以适应。您可以选择使用多个源文件,如果您愿意,我认为这是推荐的方法,但这有点令人困惑。

我首先要创建一个动态壁纸,它只是在屏幕上绘制一些基本的形状。然后找出如何显示自定义图像并从那里获取它。

祝你好运

答案 1 :(得分:2)

如果对动画采用帧方式,你需要非常非常小心内存 - 可能可以动画全帧 - 更实用在背景上移动精灵。见,fr'instance:http://davidjhinson.wordpress.com/2010/05/19/scarce-commodities-google-android-memory-and-bitmaps/

答案 2 :(得分:0)

如果您的png帧动画设置在背景图像上某个位置的某个x和y位置,那么两者都必须重新调整