码迷,mamicode.com
首页 > 移动开发 > 详细

Android 过度绘制优化

时间:2016-04-16 19:08:42      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:

打开项目之后

查看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 实现,明天继续!



Android 过度绘制优化

标签:

原文地址:http://blog.csdn.net/gutao3800/article/details/51167784

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!