我的问题可能很简单。我最近开始为 Android(以及一般的 Android 编码)创建动态壁纸,但我缺乏动态壁纸编码背后的基础知识,因为它真的很难找到。
我想创建一个带有 2 个(或更多)“层”的动态壁纸。我的两个所谓的层是:
- 对触摸事件做出反应的背景
- 位图,位于顶部
目前我正在一个画布中绘制所有内容,如下所示:
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 来完成吗?