我刚刚开始写一个动态壁纸。
我想要做的是将背景设置为来自我的资源的位图。我将在此基础上绘制我的动画。
最有效的方法是什么?有没有办法将背景设置为动态壁纸中的位图?在绘制动画之前,我是否只需要将位图绘制到画布中(这看起来可能非常低效)?
感谢,
杰
答案 0 :(得分:1)
这是我发现的。
来自eclipse图文档:
注意:在每次传递中,您从SurfaceHolder中检索Canvas,将保留Canvas的先前状态。为了正确地为图形设置动画,必须重新绘制整个表面。例如,您可以通过使用drawColor()填充颜色或使用drawBitmap()设置背景图像来清除Canvas的先前状态。否则,您将看到先前执行的绘图的痕迹
所以我使用的代码如下:
onCreate()中的mBitmapBase = BitmapFactory.decodeResource(getResources(),R.drawable.bidBackground);
onSurfaceChanged()中的//调整背景位图的大小,以便有效地绘制 mBitmapBackground = Bitmap.createScaledBitmap(mBitmapBackground,xMax,yMax,true);
并在Run()中 尝试 { canvas = sHolder.lockCanvas(); if(canvas!= null) canvas.drawBitmap(mBitmapBackground,0,0,null);
据我所知,这是有效率的。虽然如果有人可以纠正我,我很乐意听到它。