【android】关于自定义日历展开收起卡顿问题

项目中需要实现一个自定义日历,并且有展开收起效果,实现之后发现展开收起过程很卡顿,尤其在一些低配机型上更加明显。

用到的部分:

自定义日历:https://github.com/huanghaibin-dev/CalendarView

展开收起效果:通过属性动画 ValueAnimator控制组件高度实现

调查过程:

由于是自定义控件,所以会在控件的视图类的onDraw里写一些逻辑。考虑onDraw中逻辑较多,初步优化,减少了for循环,还有循环中定义变量。再次运行,发现有所改善,但还是能体现出卡顿。过后考虑ValueAnimator的使用中是不是有问题,发现并没有明显问题,和demo使用的方式也是一致的。最后通过在onDraw中一段一段注释代码发现,在for循环的日期转换过程中,导致了卡顿。

导致卡顿的部分:
SimpleDateFormat sdr =new SimpleDateFormat("yyyy/MM/dd");

return sdr.format(new Date(time));

把这部分移到onDraw外面,提前处理好,运行后发现终于流畅了。

以后在自定义view的过程中也要注意下,在ondraw中的逻辑处理不当会对性能产生很大影响。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容