geekband android #5 第十三次作业分析过程

以下为分析过程、指出问题、大致修改思路,修改好的项目请下载网盘中文件。



1.MainActivity
run之后可以看出,竖屏时存在过度绘制,横屏时不存在。
打开代码发现,过多嵌套LinearLayout,并且给LinearLayout指定了不必要的背景。TextView也

指定了无谓的背景色。因此这部分可以采用RelativeLayout并去掉没有意义的背景色。

修改前,竖屏:


横屏:


修改后:




2.第一个按钮overdrawview

mPaint.setColor(Color.GRAY);
canvas.drawRect(0, 0, width, height, mPaint);
mPaint.setColor(Color.CYAN);
canvas.drawRect(0, height/4, width, height, mPaint);
mPaint.setColor(Color.DKGRAY);
canvas.drawRect(0, height/3, width, height, mPaint);
mPaint.setColor(Color.LTGRAY);
canvas.drawRect(0, height/2, width, height, mPaint);
各种重叠绘制,乱七八糟。实际只需要对从上往下0-1/4,1/4-1/3,1/3-1/2,1/2-1分别绘制

GRAY、CYAN、DKGRAY、LTGRAY即可。

修改前:

修改后:



3.第二个按钮busyondraw

第二个按钮点击之后,耗时很久才响应。打开ShowOverDraw选项并不存在过度绘制问题。但是打
开代码之后发现LinearLayout嵌套多层,耗费大量时间、严重影响用户体验。可以修改为
RelativeLayout或者GridLayout布局。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值