Canvas进阶
Canvas 进阶 Canvas Layer Canvas 图层 Canvas 画布的操作是不可逆的,而且很多 Canvas 画布操作会影响后续的步骤,所以会对 Canvas 画布的一些状态进行保存和回滚。 画布和图层 画布是由多个图层构成: 绘制操作和画布操作都是在默认图层上进行的,在通常情况下,使用默认图层就可满足需求,但是如果需要绘制比较复杂的内容,如地图 (地图可以有多...
Canvas 进阶 Canvas Layer Canvas 图层 Canvas 画布的操作是不可逆的,而且很多 Canvas 画布操作会影响后续的步骤,所以会对 Canvas 画布的一些状态进行保存和回滚。 画布和图层 画布是由多个图层构成: 绘制操作和画布操作都是在默认图层上进行的,在通常情况下,使用默认图层就可满足需求,但是如果需要绘制比较复杂的内容,如地图 (地图可以有多...
9patch 图 创建可调整大小的位图(9-patch 文件) NinePatch 可绘制对象 什么是 .9? NinePatchDrawable 图形是一种可拉伸的位图,可用作视图的背景。Android 会自动调整图形的大小以适应视图的内容。NinePatch 图片的其中一项用途是用作标准 Android 按钮(按钮必须拉伸以适应各种长度的字符串)的背景。NinePatc...
WebView 的内核 WebView 内核加载逻辑 private static final String CHROMIUM_WEBVIEW_NATIVE_RELRO_32 = "/data/misc/shared_relro/libwebviewchromium32.relro"; private static final String CHROMIUM_WEBVIEW_NA...
Webview 基础 WebView 介绍 WebView 是一个基于 webkit 引擎、展现 web 页面的控件。 Android 的 Webview 在低版本和高版本采用了不同的 webkit 版本内核,4.4 后直接使用了 Chrome。 WebView 作用: 显示和渲染 Web 页面 直接使用 html 文件(网络上或本地 assets 中)作布局 ...
WebView 问题汇总 避免 WebView 内存泄露 不在 xml 中定义 Webview,而是在需要的时候在 Activity 中创建,并且 Context 使用 getApplicationgContext() LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.Layou...
EditText 设置 基本设置 IME Options inputType EditText 设置输入类型为数字 android:inputType="number" setInputType(EditorInfo.TYPE_CLASS_NUMBER); EditText 设置不可编辑 android:inputType="none" setInputType(Edi...
Button Button 默认 z 轴对事件分发和 ViewGroup 绘制顺序的影响 从 Android SDK 21(即 5.0)开始,Button 控件按下自带阴影效果,阴影效果相当于是在 Z 轴的一个分量,所以导致 Button 总是在最顶层显示,同层级 View 的事件分发都是先分发给 Button。 When the button is pressed, a z-tran...
PopupWindow 基础 PopupWindow 总结 设置 PopupWindow 背景 (setBackgroundDrawable),且要在 showAtLocation() 显示之前设置,否则动画播放不了 退出时,要将 PopupWindow 给 dismiss() 掉,否则会 leak 需要顺利让 PopUpWindow dimiss(即点击 PopuWind...
LinearLayout android:layout_weight 特点 LinearLayout 中的 layout_weight 属性,首先按照控件声明的尺寸进行分配,然后再将剩下的尺寸按 weight 分配。 layout_width 都为 wrap_content 时,权重表示的是,按比例分配,值越大,占用的宽度(比例)越大 layout_width 都为 ma...
WindowManager Flag TYPE_SYSTEM_OVERLAY/ TYPE_APPLICATION_OVERLAY TYPE_SYSTEM_OVERLAY过时,不会有输入事件,API26(Android8.0) 及以上用 TYPE_APPLICATION_OVERLAY 替代 TYPE_APPLICATION_OVERLAY在所有 Activity 之上,在 FI...