gpt4 book ai didi

java - Android 动态壁纸 - 动态壁纸中 XML 的层和基础知识

转载 作者:行者123 更新时间:2023-11-29 08:58:51 25 4
gpt4 key购买 nike

我的问题可能真的很简单。我最近开始为 Android 创建动态壁纸(以及一般的 Android 编码),但我缺乏动态壁纸编码背后的基础知识,因为它真的很难找到。

我想创建一个有 2 个(或更多)“层”的动态壁纸。我的两个所谓的图层是:

  • 响应触摸事件的背景
  • 一个位图,在上面

目前我在一个 Canvas 中绘制所有内容,如下所示:

Resources res = getResources();
Bitmap image = BitmapFactory.decodeResource(res, R.drawable.image);

Canvas c = null;
try {
c = holder.lockCanvas();
if (c != null) {
c.drawARGB(aa, rr, gg, bb);
c.drawBitmap(image, 0, 0, paint);
}
} finally {
if (c != null) holder.unlockCanvasAndPost(c);
}

它可以工作,但性能真的很差,因为我在每次重绘帧时绘制这个相对较大的 PNG 文件。

我想知道在动态壁纸中显示位图的最佳方式是什么?以及以后如何为它们设置动画(基本上只是改变开始的位置)而不必每次都重新绘制它们?最后,如何确定动态壁纸中的 z-index(有多层)——这也可以像在“普通应用程序”中一样使用 XML 来完成吗?

最佳答案

今天我发布了一个live wallpaper template在使用 Canvas 和单独的动画线程的 GitHub 上。如果您刚开始使用动态壁纸,您可能想检查一下。

在你的情况下,你应该只解码一次位图然后简单地绘制它。每帧重新绘制位图没有错。如果你想有多个图层,只需按顺序绘制它们,这样顶层就会最后绘制。

关于java - Android 动态壁纸 - 动态壁纸中 XML 的层和基础知识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18699786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com