android 自定义view 缓存技术

在android应用开发过程中,常常涉及到需要自己来重写一个view。一般情况下,只需要重写view中的onDraw方法就能够实现绘制的工作,但是有的时候,涉及到多层且动态的效果的话,不加处理而直接在onDraw中直接绘制的开销会十分大,这种情况下,应用缓存技术就十分有必要了。

缓存技术的原理其实十分简单,就是事先将需要展现的界面全部绘制完成,然后在onDraw里面直接将缓存好的界面展示出来就可以了, 不需要涉及太多的开销。

在这里,可以采用bitmap做为缓存的介质,需要事先创建对应大小的bitmap对象,然后在其上面套个Canvas对象,之后直接在Canvas上面绘制,绘制完成后,bitmap中存的就是最终需要显示的界面了。

下面就是制作缓存的过程,一般只在自定义view创建的时候运行一次就可以了,得到缓存holder

//创建缓存图片
Bitmap bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);
//将缓存图片设置为画布
Canvas canvas = new Canvas(bitmap);
//canvas进行绘制
......

//绘制完成之后,记录下缓存
holder = bitmap;

调用的时候,只需要在onDraw方法里面,直接将holder绘制出来就可以了。

canvas.drawBitmap(holder,x,y,new Paint());



上一篇:还敢用智能手表吗?三星Gear Live会泄露用户数据


下一篇:C#中用ILMerge将所有引用的DLL和exe文件打成一个exe文件,有图解