在动态壁纸中设置背景位图

时间:2011-02-24 21:50:34

标签: bitmap live-wallpaper

我刚刚开始写一个动态壁纸。

我想要做的是将背景设置为来自我的资源的位图。我将在此基础上绘制我的动画。

最有效的方法是什么?有没有办法将背景设置为动态壁纸中的位图?在绘制动画之前,我是否只需要将位图绘制到画布中(这看起来可能非常低效)?

感谢,

1 个答案:

答案 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);

据我所知,这是有效率的。虽然如果有人可以纠正我,我很乐意听到它。

相关问题