目录概述需求编写代码I编写代码II编写代码III优化总结概述最近安卓自定义view的知识看的很熟,但是却很久没动手了,这几天用kotlin手撕了原先一个左滑删除的RecyclerView,居然弄得有点懵逼。后面又慢慢改进、加东西,发现这样一个例子下来,自定义View以及事件分发的知识居然覆盖的差不多了,所以有了写博客的想法。下面我会从我的思路一点点的写下去, ......
367
0
0
2023-06-10
目录前言需求编写代码主要问题前言上篇文章通过一个有header和footer的滚动控件(Viewgroup)学了下MeasureSpec、onMeasure以及onLayout,接下来就用一个滚动选择的控件(View)来学一下onDraw的使用,并且了解下在XML自定义控件参数。需求这里就是一个滚动选择文字的控件,还是挺常见的,之前用别人的,现在选择手撕一个 ......
247
0
0
2023-06-10
目录前言需求效果图编写代码主要问题前言上一篇文章直接通过安卓自定义view的知识手撕了一个侧滑栏,做的还不错,很有成就感。这篇文章的控件没有上一篇的复杂,比较简单,通过一个内容滚动造成header折叠的控件学习一下滑动事件冲突问题、更改view节点以及CoordinatorLayout事件传递(超低仿),基本都是一个引子,希望学完这个控件,要继续省略学习下涉 ......
238
0
0
2023-06-10
目录前言需求效果图编写代码主要问题前言上一篇做了一个滑动折叠的Header控件,主要就是练习了一下滑动事件冲突的问题,控件和文章写的都不怎么样。本来想通过这篇文章的控件,整合一下前面六篇文章的内容的,结果写的太复杂了,就算了,没有新的技术知识,功能也和之前的安卓广东选择控件类似,不过在写的过程还是有点难度的,用来熟悉自定义view知识还是很不错的。需求这里我 ......
310
0
0
2023-06-10
目录前言需求效果图编写代码主要问题前言上一篇文章学了下自定义View的onDraw函数及自定义属性,做出来的滚动选择控件还算不错,就是逻辑复杂了一些。这篇文章打算利用自定义view的知识,直接手撕一个安卓侧滑栏,涉及到自定义LayoutParams、带padding和margin的measure和layout、利用requestLayout实现动画效果等,有 ......
222
0
0
2023-06-10
目录前言弹层的形式选择中间弹层左右抽屉弹层顶部弹层底部弹层总结前言当前 App 的设计趋势越来越希望给用户沉浸式体验,这种设计会让用户尽量停留在当前的界面,而不需要太多的跳转,这就需要引入弹层。比如,抖音引入购物功能后,就实现了在观看视频界面可以通过弹层完成加入购物车、下单操作,无需离开当前的视频界面。本篇我们就来讲讲弹层这块需要注意哪些用户体验。弹层的形式 ......
240
0
0
2023-06-10
目录补间动画RotateAnimation动画示例ScaleAnimation动画示例TranslateAnimation动画示例AlphaAnimation动画示例AnimationSet 动画组合动画示例补间动画Android常用的四种补间动画分别为RotateAnimation、ScaleAnimation、TranslateAnimation、Alp ......
329
0
0
2023-06-09
目录基本属性约束强度Visibility属性控件宽高比子控件之间的宽高占比锚向指示线Chains链基本属性可以让本View的一个方向置于目标View的一个方向,比如layout_constraintBottom_toBottomOf:本View的下面置于目标View的下面,与此类似的还有 layout_constraintEnd_toEndOf,layout ......
312
0
0
2023-06-09
目录早期的转场Material Design 转场动画Material Motion 动画MaterialContainerTransformShared axisFade ThroughFade总结早期的转场最初,两个Activity之间的切换的过度动画,都是用overridePendingTransition。它只支持平移、缩放、透明度、旋转四种动画效果 ......
298
0
0
2023-06-09
目录前言死锁检测线程Block状态获取当前线程所请求的锁通过锁获取当前持有的线程线程启动nativePeer 与 native Thread tid 与java Thread tiddlsym与调用系统限制死锁检测所有代码总结前言“死锁”,这个从接触程序开发的时候就会经常听到的词,它其实也可以被称为一种“艺术”,即互斥资源访问循环的艺术,在Android中, ......
306
0
0
2023-06-09
目录简介ArrayList源码讲解初始化扩容增加元素一个元素一堆元素删除元素一个元素一堆元素修改元素查询元素总结ArrayList优点ArrayList的缺点简介ArrayList是List接口的一个实现类,它是一个集合容器,我们通常会通过指定泛型来存储同一类数据,ArrayList默认容器大小为10,自身可以自动扩容,当容量不足时,扩大为原来的1.5倍,和 ......
251
0
0
2023-06-08
目录背景状态栏是什么?系统ICON布局StatusIconContainer -- onMeasureStatusIconContainer -- onLayoutStatusIconContainer -- onDraw状态栏图标显示逻辑控制关键view管理图标如何更新?如何定制?注意事项:背景项目中为了适应产品形态需要对Android系统状态栏 ......
323
0
0
2023-06-07
目录粒子运动概念如何保持持续运动 创建粒子对象创建粒子控制器初始化粒子创建画板多粒子实现八大行星加速度自由落体弹跳总结粒子运动概念粒子运动是将对象按照一定物理公式进行的自定义轨迹运动,与普通动画不同的是,它没有强制性的动画开始到结束的时间概念,因为粒子的运动开始到结束的时间并不是固定的,而是由具体场景的物理运动公式来决定的,什么时候结束由你来定,例 ......
347
0
0
2023-06-07
目录一、背景二、App端Crash注册2.1 commonInit()2.2 KillApplicationHandler 类2.2.1 ensureLogging()2.2.2 ApplicationErrorReport三、AMS端处理崩溃逻辑3.1 AMS.handleApplicationCrash3.1.1 AMS.handleApplicatio ......
324
0
0
2023-06-06
目录前言1. Binder的作用2. 进程与Binder驱动如何通信3. ServiceManager进程的作用Binder Client、Binder Server、ServiceManager关系ServiceManager注册进Binder4. 进程添加服务到ServiceManager的流程其它进程找到SM添加服务到ServiceManagerBBi ......
346
0
0
2023-06-05