设计联盟网站,网站的后台一般用什么做的,网站导航优化,dedecms如何做网站前言
说不焦虑其实是假的#xff0c;因为无论是现在还是最近几年#xff0c;很早就有人察觉Android开发的野蛮生长时代已经过去。过去的优势是市场需要#xff0c;这个技术少有人有#xff0c;所以在抢占市场的时候#xff0c;基本上满足需要就已经可以了。但是现在…前言
说不焦虑其实是假的因为无论是现在还是最近几年很早就有人察觉Android开发的野蛮生长时代已经过去。过去的优势是市场需要这个技术少有人有所以在抢占市场的时候基本上满足需要就已经可以了。但是现在各式各样的APP层出不穷APP的质量成为新的竞争标准。这也意味着不管是系统设计还是性能优化等方面市场都给Android开发者提出了更高的要求。那么Android是不是真的不吃香了呢其实不是的高级及以上还有很大的需求缺口非常稀缺人才。但是初级开发者真的已经不吃香了。丧气的说一句初级学者在市场中的竞争优势其实是很少的。 我们一样也可以从Android开发的需求岗位来了解目前的市场情况。
一.view渲染机制分为
onLaout与onMeasureonDraw映射机制
二.常用view有
1.RecycleView
解读源码布局管理器LayoutManager条目装饰ItemDecorationViewHolder与回收复用机制
2.CardView
源码的解答圆角阴影实现原理5.0以下阴影与边距的适配
3.viewpager
加载机制和如何优化如何与Fragment结合
4.Webview
原理分析JS与java交互多线程WebView使用WebView和native的通信框架
三.布局ViewGroup
ConstaintLayoutLinearLayoutRelativeLayoutFrameLayoutGridLayout
四.View的绘制流程
4.1自定义控件
1、组合控件。这种自定义控件不需要我们自己绘制而是使用原生控件组合成的新控件。如标题栏。 2、继承原有的控件。这种自定义控件在原生控件提供的方法外可以自己添加一些方法。如制作圆角圆形图片。 3、完全自定义控件这个View上所展现的内容全部都是我们自己绘制出来的。比如说制作水波纹进度条。
View的绘制流程OnMeasure()——OnLayout()——OnDraw()
第一步OnMeasure()测量视图大小。从顶层父View到子View递归调用measure方法measure方法又回调OnMeasure。第二步OnLayout()确定View位置进行页面布局。从顶层父View向子View的递归调用view.layout方法的过程即父View根据上一步measure子View所得到的布局大小和布局参数将子View放在合适的位置上。第三步OnDraw()绘制视图。 ViewRoot创建一个Canvas对象然后调用OnDraw()。
六个步骤
绘制视图的背景保存画布的图层Layer绘制View的内容绘制View子视图如果没有就不用还原图层Layer绘制滚动条。
4.2ViewViewGroup事件分发
1.Touch事件分发中只有两个主角:ViewGroup和View。
ViewGroup 包含onInterceptTouchEvent、dispatchTouchEvent、onTouchEvent三个相关事件。
View 包含dispatchTouchEvent、onTouchEvent两个相关事件。 其中ViewGroup又继承于View。
2.ViewGroup和View组成了一个树状结构根节点为Activity内部包含的一个ViewGroup。
3.触摸事件由Action_Down、Action_Move、Aciton_UP组成其中一次完整的触摸事件中Down和Up都只有一个Move有若干个可以为0个。
4.当Acitivty接收到Touch事件时将遍历子View进行Down事件的分发。ViewGroup的遍历可以看成是递归的。分发的目的是为了找到真正要处理本次完整触摸事件的View这个View会在onTouchuEvent结果返回true。
5.当某个子View返回true时会中止Down事件的分发同时在ViewGroup中记录该子View。接下去的Move和Up事件将由该子View直接进行处理。由于子View是保存在ViewGroup中的多层ViewGroup的节点结构时上级ViewGroup保存的会是真实处理事件的View所在的ViewGroup对象:如ViewGroup0-ViewGroup1-TextView的结构中TextView返回了true它将被保存在ViewGroup1中而ViewGroup1也会返回true被保存在ViewGroup0中。当Move和UP事件来时会先从ViewGroup0传递至ViewGroup1再由ViewGroup1传递至TextView。
6.当ViewGroup中所有子View都不捕获Down事件时将触发ViewGroup自身的onTouch事件。触发的方式是调用super.dispatchTouchEvent函数即父类View的dispatchTouchEvent方法。在所有子View都不处理的情况下触发Acitivity的onTouchEvent方法。
7.onInterceptTouchEvent有两个作用
拦截Down事件的分发。中止Up和Move事件向目标View传递使得目标View所在的ViewGroup捕获Up和Move事件。
实战系列
话不多说Android实战系列集合都已经系统分类好由于文章篇幅问题没法过多展示获取学习笔记链接点击我的腾讯文档免费获取 点击我的腾讯文档免费获取**
[外链图片转存中…(img-QF9kcHda-1620830908178)]