![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
MrChenUpUp
爱android 爱源码 记录一些学习笔记与心得
展开
-
setWillNotDraw()方法原理
在ViewGroup中默认是不进行绘制的,onDraw()和draw(canvas)方法都不会调用,因为ViewGroup为了提升性能默认情况下是不开启绘制的,可以通过调用setWillNotDraw(false)打开ViewGroup的绘制。setWillNotDraw怎么实现的?我们知道绘制的流程是:draw(Canvas canvas, ViewGroup parent, long drawingTime)->draw(Canvas canvas)->onDraw(Canvas ca原创 2020-06-24 11:08:08 · 2446 阅读 · 1 评论 -
RecyclerView实现悬浮吸顶、分隔线、到底提示效果
本文中所有效果均通过ItemDecoration实现,通过此实现的可以实现与业务解耦,让RecyclerView的模板更加简洁,不关心任何辅助性ui,附上github地址:https://github.com/ChenSWD/EasyStickyDecoration...原创 2020-01-07 21:31:58 · 959 阅读 · 0 评论 -
RecyclerView中View的添加复用
本文以通俗的语言,记录在阅读RecyclerView源码时的一些心得????。添加view的过程在使用recyclerView的setAdapter方法设置adapter时,会调用RecyclerView的requestLayout()方法,进而执行measure、layout等生命方法;何时添加的子view(adapter里面的一堆):在RecyclerView执行layout时,实际会调用L...原创 2019-12-17 12:59:47 · 1402 阅读 · 0 评论 -
MessageQueue之SyncBarrier的作用
postSyncBarrier()原创 2019-11-01 16:34:13 · 1044 阅读 · 0 评论 -
android可以无限循环滑动的ViewPager
前言:最近有需求需要某个页面是可以无限滑动的,这个页面是用ViewPager实现的,但是ViewPager本身并不能无限滑动,所以想在android现有ViewPager的基础之上,实现这个功能,本文提供基于PagerAdapter和FragmentPagerAdapter的可以复用view和fragment的一种实现,github地址:。分析: ViewPager滑动边界是怎么判断的? ...原创 2018-09-10 11:47:09 · 8923 阅读 · 0 评论 -
播放器手势:基于GestureDetector实现(双击、快进快退、音量亮度调节)
最近有个播放器手势滑动快进快退的需求,研究了一下Android中GestureDetector的用法,封装了一个工具类,实现了单击、双击、横向滑动(快进快退)、竖向滑动(亮度音量调节)手势。代码参见:https://github.com/ChenSWD/PlayerGestureDetector1、在播放器中,常用的一些功能一般有:快进快退、亮度音量调节、双击暂停/播放、单击隐藏/显示播放器的...原创 2018-08-29 23:42:59 · 3407 阅读 · 1 评论 -
android 使用ndk(socket)进程保活
最近看了动脑学院的一个ndk进程守护的课程,特在此记录一下。由于个人之前对linux系统还是有所学习的,所以代码看起来基本没什么问题,在这里主要记录一下相关主要知识点、进程保活的主要实现原理。 代码我进行了整理,可参考git地址:https://github.com/ChenSWD/ProcessKeepAliveDemo.git1.保活实现原理:在ndk层,fork()一个子进程,子进程作...原创 2018-08-12 22:09:01 · 3606 阅读 · 4 评论 -
Android 属性动画代码分析(基于ObjectAnimator)
android属性动画是开发中经常使用的一项技能,但是我之前却从没有深究过动画实现原理,本文基于android 8.0,撸了一把ObjectAnimator源码,分析属性动画执行关键的过程。一、动画执行的两个主要的问题动画每一帧执行的信号是如何产生的:是handler循环还是。。。?View的属性是怎么产生变化的:在每一帧循环中,view的属性是怎么样被改变的二、带着上述的两个问...原创 2018-08-11 12:04:53 · 702 阅读 · 0 评论 -
android API 26 中对 findViewById()泛型的理解
android在api 26中的findViewById方法使用了泛型,使我们在开发中免了强转类型的苦恼,今天突然冒出了一个疑问(个人在之前对泛型还没有深入理解),故在此记录一下: findViewById()怎么知道我要的是哪一种类型,也就是说它怎么能根据不同ID刚好强转成相对应的View。1.一般来说方法泛型原型是这个样子的:public <T extends View&g...原创 2018-08-11 12:02:45 · 1791 阅读 · 0 评论