![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
高级UI
文章平均质量分 66
孤独灬啸月
这个作者很懒,什么都没留下…
展开
-
(八)Paint Xfermode
简述通过使用 Xfermode,将绘制的图形的像素和 Canvas 上对应位置的像素按照一定的规则进行混合,形成新的像素,再更新到 Canvas 中形成最终的图形。这是谷歌 api 提供的 demo 中展示的16中混合的效果。我们主要是要了解这16中模式的具体计原创 2017-05-30 17:18:07 · 255 阅读 · 0 评论 -
(十八)事件分发-源码分析
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。事件分发在各个版本的 API 都有所改动,这边是基于 25 进行学习。一、onClick 与 onTouch先看一段简单的代码:public class MainActivity extends AppCompatActivity {...原创 2017-09-10 14:22:19 · 319 阅读 · 0 评论 -
(二十七)RecyclerView 常用封装、修复及优化
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、RecycleView 的分割线RecycleView 的分割线需要自定义控件去实现,继承一个 RecyclerView.ItemDecoration 的抽象类,这个网上有较多的实现类,不记录。这边要采用的分割线方式是横线绘制,模仿 LinearLayoutCo原创 2017-10-26 20:10:01 · 434 阅读 · 0 评论 -
(二十六)Meterail Design
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、Meterail Design 是什么简单的说,Meterail Design 是一个视觉设计语言,实现一种接近真实实物的视觉效果,希望能让 UI 呈现的效果与我们实际中看到的实物效果一致,让 UI 的设计更符合用户的操作习惯等。(即添加交互效果)官方链接:ht原创 2017-10-23 22:57:31 · 875 阅读 · 0 评论 -
(二十八)RecyclerView ItemTouchHelper 源码分析以及拓展
ItemTouchHelper 源码分析以及拓展,实现 RecycleView 的拖拽和滑动,采用的是直接修改 ItemTouchHelper 源码方式进行实现。附具体代码链接原创 2017-11-01 07:51:52 · 611 阅读 · 0 评论 -
(三十五)沉浸式设计以及兼容
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、沉浸式介绍沉浸式状态栏 Google 从 Android kitkat(android 4.4) 开始,给我们开发者提供了一套能透明的系统 UI 样式给状态栏和导航栏,这样的话就可以调整状态栏和导航栏跟 Activity 一样的样式,形成一个完整的主题。优点:原创 2017-11-29 21:21:24 · 244 阅读 · 0 评论 -
(三十七)FloatingActionButton、CoordinatorLayout、AppBarLayout、CollapsingToolbarLayout 基本使用
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、FloatingActionButton1.demo布局文件:<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="h原创 2017-12-08 21:58:28 · 1417 阅读 · 0 评论 -
(三十一) NavigationView 原理分析
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、NavigationView 使用1.demoNavigation 主要是配合 DrawerLayout 进行使用,作为 DrawerLayout 的侧滑菜单。Navigation 有分为上下两个部分,上部分是头部,下部分是菜单。MainA原创 2017-11-21 20:28:01 · 299 阅读 · 0 评论 -
(三十)Snackbar 使用及其源码分析
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、Snackbar、Dialog、ToastDialog :交互性太强。当弹出的时候会阻断用户操作的连段性,降低用户体验Toast:没有交互性,用户不能选择Snackbar:介于 Dialog 和 Toast 之间,既不会打断用户操作,又可以原创 2017-11-16 19:14:53 · 320 阅读 · 1 评论 -
(三十二)ToolBar 与 SearchView
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、ActionBarActionBar 是一种新増的导航栏功能,在 Android 3.0 之后加入到系统的 API 当中,它标识了用户当前操作界面的位置,并提供了额外的用户动作、界面导航等功能。使用 ActionBar 的好处是,它可以给提供一种全局统一的UI界原创 2017-11-22 23:40:15 · 347 阅读 · 0 评论 -
(三十六)CardView 使用及源码分析
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、使用1.demoCardView 的使用很简单,直接上个 demo 看一下。activity_main.xml:<?xml version="1.0" encoding="utf-8"?><android.support.constraint.Constrai原创 2017-12-02 21:01:33 · 392 阅读 · 0 评论 -
(三十三)TabLayout
TabLayout 的使用以及属性设置,配合 ViewPager 使用。还有使用中的一些坑,造成 TabLayout 的 Tab 空白原创 2017-11-24 16:57:36 · 356 阅读 · 0 评论 -
(三十四)Palette 使用和 MaterialDesign 整合使用
Palette 基本使用MaterialDesign 整合使用,结合前面几节的内容,用了Toolbar、DrawerLayout、NavigationView、TabLayout、ViewPager、ActionBarDrawerToggle、Palette 等,写了个demo原创 2017-11-25 21:53:52 · 186 阅读 · 0 评论 -
(三十八)CoordinatorLayout 源码分析及手写 CoordinatorLayout 以及 NestedScrolling 机制
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、CoordinatorLayout这是上一篇文章对 CoordinatorLayout 的介绍。1.demoMainActivity :public class MainActivity extends AppCompatActivity { privat原创 2017-12-15 21:06:57 · 282 阅读 · 0 评论 -
(三十九)MaterialDesign 动画
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一·、概述安卓在 5.0 之后添加了 MaterialDesign 动画,主要有以下几种:Touch feedback(触摸反馈)Reveal effect(揭露效果)Activity transitions(Activity 转换效果)Curved motion(原创 2017-12-18 22:47:58 · 252 阅读 · 0 评论 -
(二)UI绘制流程 —— 绘制过程源码分析
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。从上一篇可以可以知道,UI的绘制流程的起点在 ViewRootImpl 下的performTraversals()方法。并且按顺序调用了 performMeasure(),performLayout()和 performDraw()这三个方法。一、原创 2017-05-19 17:16:54 · 324 阅读 · 0 评论 -
(十)Canvas 的基本使用
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、概述Canvas 我们经常把它理解为画板,但是,实际上 Canvas 是一个封装类,它包含了四个东西: 1、画板:用来保存像素的bitmap 2、画布或者画纸: Canvas 在 Bitmap 上进行绘制操作 —- (Layer—原创 2017-06-22 19:10:13 · 403 阅读 · 0 评论 -
(二十九)DrawerLayout 打造炫酷侧滑菜单
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、DrawerLayout 的 demo先来看一下 DrawerLayout 的简单 demo。效果: activity_main.xmlLinearLayout xmlns:android="http://schemas.and原创 2017-11-09 21:10:45 · 455 阅读 · 0 评论 -
(二十五)3D 翻转效果
3D 翻转效果一、ViewPager 的 3D 效果1.ViewPager先直接上个简单的 ViewPager 的 demo。 二、Carema 实现翻转效果。2D 滚动、3D 整体滚动、尾部逐渐分离再合并、百叶窗、魔方效果。原创 2017-10-05 20:31:40 · 1085 阅读 · 2 评论 -
(二十四)自定义动画框架
安卓自定义动画框架这边代码很简单,主要学习这个动画框架开发过程的思想,开发出来的动画框架便于使用,利于扩展。原创 2017-10-04 10:25:52 · 280 阅读 · 0 评论 -
(二十三)Animator 实例 —— 开场动画
Animator 开场动画,等待加载一、效果这个是国外的一个 App 开场动画,曾获得设计大奖 。 二、分析看效果是有两个界面,一个是 Splash 小球旋转的加载界面,一个是主界面,很多时候习惯在这边做成两个 Activity 进行跳转。如果条件允许的话,尽量做成两个 View 同时存在一个 Act原创 2017-10-03 15:21:12 · 662 阅读 · 0 评论 -
(七)Paint 高级渲染
安卓高级渲染 Shader ,BitmapShader--位图图像渲染 LinearGradient--线性渲染 SweepGradient----渐变渲染/梯度渲染RadialGradient----环形渲染ComposeShader----组合渲染原创 2017-05-29 16:11:35 · 328 阅读 · 0 评论 -
(九)Paint 滤镜
安卓 paint 滤镜 LightingColorFilter PorterDuffColorFilter ColorMatrixColorFil一、概述滤镜效果就是对图像进行一定的过滤处理,安卓的颜色值有32位整数包含4个字节,ARGB 各占一个字节。:A—Alpha值,RGB—颜色值。过滤主要分为两种,一是对 Alpha 的过滤处理,二是对 RGB 的过滤处理。二、 Alpha 滤镜处理MaskFilte原创 2017-06-04 20:05:47 · 293 阅读 · 0 评论 -
(十一)Canvas 实例 - RevealView
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、效果多张图片,通过滑动,体现一个选中图片的效果。 二、DrawnableDrawnable 是一个可画的对象,其可能是一张位图(BitmapDrawnable),也可能是一个图形(ShapeDrawnable),还有可能是一个图层(LayerDrawnable原创 2017-07-19 21:57:54 · 455 阅读 · 0 评论 -
(十五)PathMeasure
一、PathMeasure 基础从名字就可以看出, PathMeasure 是一个用来测量 Path 的类。1.构造方法 PathMeasure()创建一个空的 PathMeasure。2.构造方法 PathMeasure(Path path, boolean fo原创 2017-08-06 20:43:07 · 256 阅读 · 0 评论 -
(十六)SVG
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、概述1.SVGSVG,全称为 Scalable Vector Graphics 可伸缩矢量图形。 附:w3school 的链接 http://www.w3school.com.cn/svg/svg_intro.asp什么是 SVG SVG 指可伸缩矢量图形原创 2017-08-17 20:14:24 · 1075 阅读 · 0 评论 -
(十四)水波纹动画
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、效果二、分析这个水波纹动画主要分为两大块,水波纹跟运动的小船。1.水波纹1.水波纹采用正余弦函数的图像,当进行绘制的时候,图中水平红线部分的一个波长分为两个贝塞尔曲线进行绘制。重复直至充满手机屏幕。 2.往屏幕最左边超出多画一个波长。动画执行的时候整个绘制图形原创 2017-08-06 18:07:10 · 998 阅读 · 2 评论 -
(十三)QQ 消息气泡
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、效果二、分析我们把整个气泡做成一个自定义控件,通过实际效果,可以知道控件有下列几种状态: 1、气泡静止状态 --- 画气泡小球和数字 2、气泡相连状态 --- 画两个相连的气泡小球(类似橡皮筋效果)、数字 3、气泡分离状态 --- 单个气泡小球的拖动 4、原创 2017-07-26 22:14:38 · 2290 阅读 · 0 评论 -
(十二)Path 及贝塞尔曲线
Path 及贝塞尔曲线一、Path Path 的一些简单的 add 开头的方法这边就不讲述,在这里就稍微记录一些特殊的。1.带 r 开头rLineTo,rMoveTo 基于前一个点的相对位置 LineTo,MovoTo 不带r开头的,传的是我们的绝对位置原创 2017-07-25 20:38:44 · 427 阅读 · 0 评论 -
(十九)ListView 复用思想 —— TableView 的实现
TableView demo源码,可直接使用。模仿 ListView 的复用思想。介绍ListView 的复用思想,以及 TableView 的大体架构。提供一个大神写的 TableView 自定义控件,并进行详细的注释。原创 2017-09-15 21:12:01 · 577 阅读 · 0 评论 -
(二十)Animator 基础
一、传统的2D动画 --- 补间动画+帧动画二、属性动画 Property Animation 1.属性动画 2.ObjectAnimator 3.属性动画的监听 4.ValueAnimator 5.PropertyValuesHolder 6.AnimatorSet三、估值器四、插值器原创 2017-09-25 19:54:22 · 356 阅读 · 0 评论 -
(十七)SVG 实例-可交互式中国地图
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、效果二、分析第一步 下载含有中国地图的 SVG 这里附一个地图资源: https://www.amcharts.com/dl/javascript-maps/ ,这里面包含世界各个国家的SVG地图,各个省份地图第二步 将 SVG 资源转换成相应的原创 2017-08-27 20:45:15 · 16244 阅读 · 4 评论 -
(一)UI绘制流程 —— 源码分析
安卓 UI 绘制流程,源码分析。在 UI 绘制的流程中,会先调用 onMeasure(),再调用 onLayout(), 接着才调用 onDraw()原创 2017-05-11 10:11:24 · 528 阅读 · 0 评论 -
(三)UI绘制流程 —— 流式布局
流式布局代码分析原创 2017-05-20 16:11:35 · 437 阅读 · 0 评论 -
(二十一)Animator 实例 —— 刷鲜花效果
爱心在底部中心慢慢变大出现,然后按随机的轨迹上升。所有安卓 Animator 动画实现效果都有原创 2017-09-28 19:18:51 · 358 阅读 · 2 评论 -
(二十二)Animator 源码分析
这是是根据 API 25 进行 ObjectAnimator 的使用代码分析。 public void startAnimator(View view){ ObjectAnimator objectAnimator = ObjectAnimat原创 2017-10-01 14:14:18 · 558 阅读 · 0 评论 -
(四)UI绘制流程 —— 瀑布流布局
安卓 瀑布流布局一.前言上一篇给出了流式布局,这里再来一篇瀑布流布局练手,同时代码稍微简洁一些。不在利用封装类来保存数据,直接把子 View 的四个边沿保存在 对应的 LayoutParams 中。二、分析 1.generateLayoutParams()获原创 2017-05-22 21:49:10 · 1389 阅读 · 0 评论 -
(六)Paint 绘画文字
绘画文字, Paint.FontMetrics 这个内部类介绍。以及自定义控件 圆形进度条的实现原创 2017-05-24 21:46:51 · 778 阅读 · 0 评论 -
(五)Paint 画笔基本的使用
版权声明:本文为博主原创文章,未经博主允许不得转载。 本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。一、概述绘图时需要用到 Paint 和 Canvas 这两个类。Paint 就是绘画时候的画笔,而 Canvas 就是画布。但是, Canvas 这个画布是无限大的,而不是只有屏幕显示那么大。我们可以在这个画布上画任何东西,选取不同的画笔,就...原创 2017-05-23 20:34:40 · 979 阅读 · 0 评论