今天在写一个自定义view时,加了个ScrollView包裹,发现只要已出现我写的自定义view,此时界面就会异常卡顿。
认真看了一下onDraw方法,发现里面进行了过多的绘制。
问题表象原因
在onDraw中绘制的内容过多,具体原因还未研究
解决方法
将onDraw中绘制的内容提取出来,画到一个bitmap中,然后在onDraw中只绘制这个bitmap
使用一个方法来处理出bitmap,包含如下代码
Bitmap bit= Bitmap.createBitmap(viewPxSize, viewPxSize, Bitmap.Config.ARGB_8888);
Canvas c= new Canvas(bit);
c.drawXXX
postInvalidate();
此时操作我们自己new出来的c,既可以实现绘图到bit中。
然后在onDraw中将bit绘制到onDraw方法的参数canvas中。
主要思想就是这样,不贴代码了