android 自定义view 缓存技术

6 篇文章 0 订阅
5 篇文章 0 订阅

在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());



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值