执行命令之后可能需要重新启动你当前开发的应用。
颜色与过渡绘制:
-
原色:没有过度绘制
-
蓝色:1 次过度绘制
-
绿色:2 次过度绘制
-
粉色:3 次过度绘制
-
红色:4 次及以上过度绘制
在平时的开发中,如果出现粉色及以上的过渡绘制情况。说明过渡绘制以及很严重了。需要进行优化。
3. 优化过渡绘制
1. 去除Activity自带的默认背景颜色:
查看Android源码里的Theme主题,如下:
也就是说继承Theme这个style的风格,默认情况下,新建一个Activity都是有背景的。正常情况下,很多界面其实是不需要背景的。
下面是华为自带天气APP的首页,我们可以看到文字部分以及图标部分都是绿色,说面已经是第三层过渡绘制了,其中背后天气图是一层,文字又是一层,正常来说应该只有两层,也就是文字和图标应该是蓝色。
那么这多出来的一层应该就是Activity自带的背景色了。也就是theme里面设置的。
我们只要在自己的AppTheme里面去除该背景色即可:
或者在Activity的onCreate方法中:
getWindow().setBackgroundDrawable(null);
2. 使用Canvas的clipRect和clipPath方法限制View的绘制区域
一个Activity对应有一个Canvas,也就是画布,画布的概念就是一个画板,这个画布提供了很多的API,我们可以通过调用画布的API来绘图以及对画布做一些操作,clipRect方法用来裁切画布上的一个矩形区域,该矩形区域用Rect对象来描述。调用了clipRect之后,画布的可绘制区域减小到和Rect指定的矩形区域一样大小。所有的绘制将限制在该矩形范围之内。这里的裁切概念和