标签:
打开项目之后
查看MainActivity与activity_main.xml 发现activity_main.xml中有背景颜色
回想起老师在视频中说的,可以去掉window的颜色,随后在MainActivity 中的onCreate方法中增加getWindow().setBackgroundDrawable(null);
打开模拟器中的显示过度绘制区域,并运行该程序
发现this is test 文字后面的框有过度绘制情况,遂对activity_main.xml该区域进行查看,发现嵌套多个 LinearLayout 且有与其父相同的背景色,优化后代码如下:
点击OverDrawView按钮 进入OverDrawViewActivity 中
过度绘制很多,进入OverDrawView
的 onDraw 方法里查看
越向下过度绘制情况越严重,认为可以只绘制到下一个矩形的开始即可。
将代码修改为
运行后发现 仍然有过度绘制的情况,经过思考将getWindow().setBackgroundDrawable(null);增加到OverDrawViewActivityon的Create方法中运行程序后
上述情况结束后打开 activity_busy_on_draw_view.xml发现嵌套多层LinearLayout 运行程序点击BusyOnDraw
看起来并没有什么过度绘制的情况。 顺手将BusyOnDrawView中的onDraw的new Paint()提出来。
但是嵌套多层LinearLayout是不好的。类似效果可以使用一个GridView 实现,明天继续!
标签:
原文地址:http://blog.csdn.net/gutao3800/article/details/51167784