我的问题可能真的很简单。我最近学到为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文件。
我想知道在现场壁纸中显示位图的最佳方法是什么?以及以后如何动画他们(基本上只是改变的位置开始),而不必重新绘制他们每次?最后,如何确定Live壁纸中的z索引(有多个层)--这是否也可以像在“普通应用程序”中那样使用XML呢?
发布于 2013-09-09 15:06:27
今天,我在GitHub上发布了一个GitHub,它使用画布和一个单独的动画线程。如果你刚开始使用现场壁纸的话,你可能想看看它。
在您的例子中,您应该只解码一次位图,然后简单地绘制它。重新绘制每一个帧的位图没有什么错。如果您想拥有多个层,只需按顺序绘制它们,那么顶层将被绘制到最后。
https://stackoverflow.com/questions/18699786
复制相似问题