【问题标题】:Android Live Wallpaper guidanceAndroid 动态壁纸指南
【发布时间】:2011-07-18 02:15:50
【问题描述】:

说到制作安卓动态壁纸,究竟需要哪些东西呢?到目前为止,我可以概括为 WallpaperService.Engine、SurfaceView、Android.manifest 和 xml/string.xml 中的一些重大变化,除了这个 png drawble(我认为如果我使用绘画,这可能是可选的)。

我还需要为动画的发生开发完全不同的逻辑吗?总是用数学计算吗?我非常热衷于制作不同类型的动态壁纸。但我认为我没有走在正确的轨道上。

请向我建议一些正确的方向,总结我需要什么,以便我可以制作任何类型的动态壁纸。

有人可以总结一下动态壁纸需要什么。

提前致谢。

【问题讨论】:

    标签: android live-wallpaper


    【解决方案1】:

    您好,如果您有图片路径,您可以使用此代码。

    is = new FileInputStream(new File(imagePath));
    bis = new BufferedInputStream(is);
    Bitmap bitmap = BitmapFactory.decodeStream(bis);
    Bitmap useThisBitmap = Bitmap.createScaledBitmap(
    bitmap, parent.getWidth(), parent.getHeight(), true);
    bitmap.recycle();
    if(imagePath!=null){
    System.out.println("Hi I am try to open Bit map");
    wallpaperManager = WallpaperManager.getInstance(this);
    wallpaperDrawable = wallpaperManager.getDrawable();
    wallpaperManager.setBitmap(useThisBitmap);
    

    .................................................. .. 如果你有图像 URI,那么使用这个

    wallpaperManager = WallpaperManager.getInstance(this);
    wallpaperDrawable = wallpaperManager.getDrawable();
    mImageView.setImageURI(imagepath);
    

    ........如果有任何问题,请告诉我。

    【讨论】:

    • 缩进代码 4 个空格用于格式化 - 请参阅 {} 按钮和 Markdown editing help
    • 对不起,我不明白你的意思。
    • @Md Maidul Islam:很抱歉这么晚才回复这个帖子。但是您上面提供的代码基本上它的作用是通过流式传输作为第一部分或通过任何静态可绘制对象获取任何图像。然后将其设置为墙纸背景之类的东西对吗?我还没有尝试过,但如果它有效,那么它会很有帮助,但我正在寻找的是动态变化的场景,比如在我们的桌面上动画壁纸。
    【解决方案2】:

    是的,您需要对动态壁纸使用与 Android 中的“正常”动画不同的方法。标准方法是制作一个可自行重新调度的可运行文件,该可运行文件可绘制到画布上。

    回答您的一个具体问题:不,您不需要将自己局限于数学计算;如果您愿意,您可以使用位图/精灵,但您需要自己制作动画。

    您最好从 SDK 中的资源入手:
    http://developer.android.com/resources/articles/live-wallpapers.html
    http://developer.android.com/resources/samples/CubeLiveWallpaper/index.html

    【讨论】:

    • 制作动态壁纸我还需要了解opengl吗?
    • 大多数壁纸不使用 Open GL,但您可能希望在某些时候使用它。有兴趣的看这里:github.com/markfguerra/GLWallpaperService
    • 问题是我仍然无法正确弄清楚如何制作动态壁纸。我看到了立方体墙纸的例子,但是如果我想制作一个水背景或鸟树或地球仪的动态墙纸,那么我该怎么做呢?
    • 嗯,在 Cube 的 drawFrame 例程中,它调用了 drawCube 和 drawTouchPoint。相反,您可以使用该画布做任何您喜欢的事情。例如,您可以绘制位图:您可以在 OnSurfaceChanged 中加载和缩放图像,然后在 drawFrame 中使用它们。
    • 第一个链接无法访问了。
    猜你喜欢
    • 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
    相关资源
    最近更新 更多