【问题标题】:Android LIVE Wallpaper approach?Android动态壁纸的做法?
【发布时间】:2011-03-31 23:39:54
【问题描述】:

我是 Android 开发的新手,我对制作动态壁纸很感兴趣。我正在考虑循环一组图片而不是绘制动画。这是一种可能的方法吗?如果可能,这是一种合适或理想的方法,它会占用内存吗?由于碎片,我需要不同分辨率的图像吗?(数百种不同的设备)

提前致谢:)

【问题讨论】:

    标签: android image live-wallpaper


    【解决方案1】:

    当然,应该很简单。

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

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

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

    祝你好运

    【讨论】:

    • 哦,好吧,基本上我可以循环一组图片,但是没有快速简便的方法吗?
    【解决方案2】:

    如果采用帧方法制作动画,您将需要非常注意内存 - 可能不可能 为全帧制作动画 - 更实用在背景上移动精灵。见,例如:http://davidjhinson.wordpress.com/2010/05/19/scarce-commodities-google-android-memory-and-bitmaps/

    【讨论】:

      【解决方案3】:

      如果你有一个 png 帧动画,它设置在某个 x 和 y 位置,并且位于背景图像的某个位置,那么两者都必须重新缩放

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多