05.measure测量
measure 流程 measure 前身流程 ViewRootImpl ViewRootImpl 充当的是 View 和 window 之间的纽带。在 startActivity 之后,经过与 ActivityManagerService 的 IPC 交互,会在 ActivityThread 的 handleResumeActivity 方法中执行到 getWindow().addV...
measure 流程 measure 前身流程 ViewRootImpl ViewRootImpl 充当的是 View 和 window 之间的纽带。在 startActivity 之后,经过与 ActivityManagerService 的 IPC 交互,会在 ActivityThread 的 handleResumeActivity 方法中执行到 getWindow().addV...
layout 流程 在 ViewRootImpl#performTravasls 或调用 performLayout performLayout 触发的条件: // ... final boolean didLayout = layoutRequested && (!mStopped || mReportNextDraw); boolean triggerGlobalL...
draw 绘制流程 绘制相关概念 一个 View 有一个 RenderNode,RenderNode 通过 RecordingCanvas 记录了 displaylist,还包括一些属性 (scale/translation)(一个 drawXXX 操作都会记录在 displaylist 中) 根 View 包含了所有子 View 的 RenderNode 绘制根 Rend...
PorterDuff PorterDuff.Mode PorterDuff 的由来 ProterDuff 是两个人名的组合: Tomas Proter 和 Tom Duff. 他们是最早在 SIGGRAPH 上提出图形混合概念。 利用 ProterBuff.Mode 我们可以完成任意 2D 图像测操作, 比如涂鸦画板应用中的橡皮擦效果,绘制各种自定义的进度,等等很强大的效果: Po...
自定义 View : Path 注意 Canvas.drawPath 无效, paint 没有设置 paint.setStyle(Style.STROKE) Path 介绍 Path 封装了由直线和曲线 (二次,三次贝塞尔曲线) 构成的几何路径。你能用 Canvas 中的 drawPath 来把这条路径画出来 (同样支持 Paint 的不同绘制模式),也可以用于剪裁画布和根据...
自定义 View: Paint Paint 基础 Paint 即画笔,在绘图过程中起到了极其重要的作用,画笔主要保存了颜色、样式等绘制信息,指定了如何绘制文本和图形,画笔对象有很多设置方法,大体上可以分为两类,一类与图形绘制相关,一类与文本绘制相关。 Paint 的内部类 Paint.Cap Cap 指定了描边线和路径 (Path) 的开始和结束显示效果(线帽、笔触风格) 笔触风...
自定义 View: Canvas(画布) Canvas 是画布,我们通过 Canvas 的各种 drawXXX 方法将图形绘制到 Canvas 上面 Canvas 基础 坐标系 Canvas 绘图中牵扯到两种坐标系:Canvas 坐标系 (View 坐标系) 与 绘图坐标系 Canvas 坐标系(不变,左上角) Canvas 坐标系,也叫 View 坐标系。指的是 Canvas ...
Android View 体系 自定义 View 按需重写 onMeasure,适配 wrap_content 场景 重写 onDraw 绘制自己的东西 自定义 ViewGroup 按需重写 onMeasure,适配 wrap_content 场景 必须重写 onLayout 摆放子 view 按需重写 onDraw,需要设置 setWillNotDraw(...
EditText 设置 imeOptions 属性对软键盘的影响 将软键盘的 Enter 键更改为其他键,可以设置其 android:imeOptions 属性,这个属性可以控制软键盘的 Enter 键,以及横屏情况下的软键盘显示状态。 该设置必须是下面所列的值之一,或者是一个 “action…” 值加上一个 “flag…” 值的组合,在 action…组中设置多个值(例如,多个 “ac...
Android 中软键盘的显示调整 (windowSoftInputMode) 在 Android 中,可以通过给 Activity 设置 android:windowSoftInputMode 这个属性来控制软键盘与 Activity 的主窗口的交互方式。 windowSoftInputMode 小结 Activity 的主窗口与包含屏幕软键盘的窗口的交互方式,该属性的设置影响两个方...