- 博客(12)
- 收藏
- 关注
原创 UI优化
UI绘制情况,通过手机设置开启绘制调试查看绘制情况:卡顿原因:Android系统每隔16ms就会发出一次VSYNC信号触发对UI进行渲染(60fps(每秒传输60帧),即1000/60=16.666,每16ms绘制一帧),如果这16ms内我们没有完成对视图的绘制计算,此时GPU会暂停等待停留在上一帧,造成卡顿;优化方案:1、UI布局减少层级,避免重复绘制,比如去掉多余的背景、用约束布局、图片绘制避免重叠区域绘制、merge;2、避免当前有非常耗内存的代码存在(比如:onDraw里面频繁new对象)
2021-03-21 21:29:20
165
原创 继承ProgressBar(自定义带数字百分比渐变进度条)
进度条效果,参考部分代码实现,自定义可以再丰富些解决的问题:1、ProgressBar圆角会被裁剪的问题,特别是两头的圆角;自定义样式:<declare-styleable name="ProgressWithNum"> <attr name="textSize" format="dimension" /> <attr name="text...
2020-02-08 16:29:08
631
原创 Retrofit2源码分析
Retrofit2源码分析本文只在重点分析retrofit2源码,对于详细使用方法请参考官网即可;本文的分析思路是框架怎么构造请求到发送请求,再到解析数据更新给UI层;依赖引用:implementation 'com.squareup.retrofit2:retrofit:2.0.2'implementation 'com.squareup.retrofit2:converter-...
2019-08-08 18:16:10
161
原创 android studio出现finished with non-zero exit value 1的解决方案
在Terminal窗口项目根路径,命令行输入: gradlew processDebugResources --debug 然后项目开始编译,然后从中找到fail错误,里面会有详细错误内容,从而定位错误。
2019-08-05 17:10:53
820
原创 dp、density、dpi、px
Android规定,在屏幕像素密度为160dpi的情况下,1dp=1px;DPI 全称是dots per inch,对角线每英寸的像素点的个数;density(密度) = DPI / 160;px = density * DP;总结:系统最终显示的都是转换成多少px来显示控件。...
2018-08-30 16:46:37
198
原创 paint.ascent()和paint.descent() 文字居中显示
由于ascent是负值,descent是正值,所以文字的高度是descent - ascent,而Android绘制文字是从baseLine开始,当需要居中绘制时候,需要获得baseLine位置的Y值是关键:公式是h/2 + [(descent - ascent)/2 - descent] = h/2 - (descent + ascent) /2;(h是外部布局的高度)
2017-08-18 14:45:33
2534
原创 学习资料
6.0权限封装:http://www.jianshu.com/p/aa1d4b4360ed封装库:https://github.com/lovedise/PermissionGen注解文章:http://www.cnblogs.com/peida/archive/2013/04/26/3038503.html优雅的实现多类型列表的Adapter:http://www.jianshu.c
2017-08-03 14:30:25
269
原创 Java取出字符串中的汉字,并用UTF-8转码代替
List hanziList = new ArrayList(); Pattern p = null; Matcher m = null; String value = null; p = Pattern.compile("([\u4e00-\u9fa5]+)"); m
2014-09-11 17:29:24
1541
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人