Android自定义控件三部曲文章索引

前言:在我从C++转到Android时,就被Android里炫彩斑斓的自定义控件深深折服,想知道如果想利用C++实现这些功能,那是相当困难的。从那时候起,我就想,等我学会了自定义控件,一定要写一篇系列出来,方便后来者能更系统完善地掌握它。今天,这个系列就这样默默地诞生了,希望它能够完成它的使命,在你读完这系列博客时,发现定自义控件也不过如此!如果,顺便能给个评论,加个关注,我将不胜感激——启舰

 

我的新书《Android自定义控件入门与实战》出版啦:https://blog.csdn.net/harvic880925/article/details/81455073

 

一、自定义控件三部曲之动画篇

1、《自定义控件三部曲之动画篇(一)——alpha、scale、translate、rotate、set的xml属性及用法》
2、《自定义控件三部曲之动画篇(二)——Interpolator插值器》
3、《自定义控件三部曲之动画篇(三)—— 代码生成alpha、scale、translate、rotate、set及插值器动画》
4、《自定义控件三部曲之动画篇(四)——ValueAnimator基本使用》

  • 初识ValueAnimator:ofInt,ofFloat以及监听器用法

5、《自定义控件三部曲之动画篇(五)——ValueAnimator高级进阶(一)》

  • 这一节非常重要,讲解了插值器与Evaluator的使用与如何自定义知识
  • 这节中有如何做到背景色渐变的特效

6、《自定义控件三部曲之动画篇(六)——ValueAnimator高级进阶(二)》

  • 这节着重讲解了ValueAnimator的ofObject函数用法
  • 可以看到自定义弹性圆的伸缩特效
  • 如何给A-Z字母变化添加上插值器效果

7、《自定义控件三部曲之动画篇(七)——ObjectAnimator基本使用》

  • 这节讲了ObjectAnimator的用法及如何利用ObjectAnimator来实现前几节的效果

8、《自定义控件三部曲之动画篇(八)——PropertyValuesHolder与Keyframe》

  • 这节主要讲了如何自定义关键帧的知识
  • 使用关键帧实现电话振铃效果

9、《自定义控件三部曲之动画篇(九)——联合动画的代码实现》

  • 这节讲解了如何实现组合动画的知识包括顺序播放、同时播放和自由定义顺序播放以及动画监听器相关的知识

10、《自定义控件三部曲之动画篇(十)——联合动画的XML实现与使用示例》

  • 利用XML来实现组合动画的知识
  • 实现了路径菜单动画

11、《 自定义控件三部曲之动画篇(十一)——layoutAnimation与gridLayoutAnimation》

  • 讲解了容器类中控件的进入动画的实现方式

12、《自定义控件三部曲之动画篇(十二)——animateLayoutChanges与LayoutTransition》

  • 自定义容器类中控件进入、退出等相关动画的实现方式


13、《自定义控件三部曲之动画篇(十三)——实现ListView Item进入动画》

  • 讲解了一个实例:如何实现listview中各个item进场时的动画

 

在动画篇中,从一到十篇是必须要掌握的,11-13篇不是必须掌握的,有个印象就行

 

二、自定义控件三部曲之绘图篇

1、《自定义控件三部曲之绘图篇(一):概述及基本几何图形绘制》
2、《自定义控件三部曲之绘图篇(二):路径及文字》
3、《自定义控件三部曲之绘图篇(三):区域(Range)》
4、《自定义控件三部曲之绘图篇(四):canvas变换与操作》
5、《自定义控件三部曲之绘图篇( 五):drawText()详解》
6、《 自定义控件三部曲之绘图篇(六)——Path之贝赛尔曲线和手势轨迹、水波纹效果》

  • 本篇将讲述手势轨迹捕捉、波浪纹效果实现的几种方法

7、《 自定义控件三部曲之绘图篇(七)——Paint之函数大汇总》

  • 本篇将讲述路径的各种效果,比如铁锈路径、自定义图形路径、虚线路径等

8、《自定义控件三部曲之绘图篇(八)——Paint之ColorMatrix与滤镜效果》

  • 本篇将讲述各种滤镜效果的实现方法:包括黑白滤镜、反古滤镜、色彩增强滤镜、色彩替换等

9、《自定义控件三部曲之绘图篇(九)——Paint之setColorFilter》

  • 按钮点击时,动态加深图片色彩(简易方法)
  • 可以学到针对不同主题动态设置不同色彩图片的方法(setTint())

10、《自定义控件三部曲之绘图篇(十)——Paint之setXfermode(一)》

  • 硬件加速的原理与禁用方法
  • 选区颜色替换、溶合图片、反向选区颜色替换

11、《自定义控件三部曲之绘图篇(十一)——Paint之setXfermode(二)》

  • 书架中书本选中灯光效果
  • Twiter标识中空效果实现
  • 图片圆角实现
  • 图片倒影实现
  • 橡皮擦效果实现
  • 刮刮卡效果实现

12、《自定义控件三部曲之绘图篇(十二)——Paint之setXfermode(三)》

  • 区域波纹动画效果
  • 心电图动画
  • 不规则波纹
  • 刷刷卡、图片倒影等另种实现方式

13、《自定义控件三部曲之绘图篇(十三)——Canvas与图层(一)》

  • 这篇文章中没有任何特效,但这是绘图篇中非常重要的一篇,对于理解Canvas绘图起着重要作用

14、《自定义控件三部曲之绘图篇(十四)——Canvas与图层(二)》

  • 上一篇的续篇,讲解了save、saveLayer、saveLayerAlpha中所使用的FLAG的具体意义

15、《自定义控件三部曲之绘图篇(十五)——QQ红点拖动删除效果实现(基本原理篇)》

  • 对以往知识点进行总结复习,涉及有Canvas绘图、SaveLayer图层、贝赛尔曲线、手势监听和逐帧动画等
  • 初步实现了QQ红点拖动效果

16、《自定义控件三部曲之绘图篇(十六)——给控件添加阴影效果与发光效果》

  • 传统地给按钮添加阴影的方法
  • 如何给已有控件添加阴影
  • 如何给控件添加发光效果

17、《自定义控件三部曲之绘图篇(十七)——为Bitmap添加阴影并封装控件》

  • 如何给图片添加阴影
  • 如何自定义控件属性
  • 控件如何自测量
  • 如何最终封装成控件

18、《自定义控件三部曲之绘图篇(十八)——BitmapShader与望远镜效果》

  • 实现望远镜效果
  • 封装不规则头像控件

19、《自定义控件三部曲之绘图篇(十九)——LinearGradient与闪动文字效果》

  • 讲解了LinearGradient的意义
  • 实现了闪动文字效果控件

20、《自定义控件三部曲之绘图篇(二十)——RadialGradient与水波纹按钮效果》

  • 讲解了RradialGradient知识
  • 实现了按钮水波纹效果

 

三、自定义控件三部曲之视图篇

1、《自定义控件三部曲视图篇(一)——测量与布局》

  • 讲解onMeasure、onLayout的区别与用法
  • 讲解margin的计算方法

2、《自定义控件三部曲视图篇(二)——FlowLayout自适应容器实现》

  • 实现了自适应的派生自ViewGroup的容器FlowLayout

3、《自定义控件三部曲视图篇(三)——瀑布流容器WaterFallLayout实现》

  • 讲解了自定义LayoutParams并使用的方法
  • 能够了解派生自ViewGroup的控件如何定义与使用的方法

4、《自定义控件三部曲视图篇(四)——RecyclerView系列之一简单使用》

  • 讲解了RecyclerView的基本使用方法,为下篇深入讲解做准备

5、《自定义控件三部曲视图篇(五)——RecyclerView系列之二ItemDecoration》

  • 讲解了ItemDecoration与Item的关系
  • ItemDecoration的用法
  • 自定义ItemDecoration与蒙版效果

6、《自定义控件三部曲视图篇(六)——RecyclerView系列之三自定义LayoutManager》

  • 讲解了自定义LayoutManager的方法
  • 讲解了如何初始化Item布局,如何实现Item的滚动

7、《自定义控件三部曲视图篇(七)——RecyclerView系列之四实现回收复用》

  • 讲解了RecyclerView的回收复用原理
  • 讲解了为自定义LayoutManager添加回收复用的实现方法

8、《自定义控件三部曲视图篇(八)——RecyclerView系统之五回收复用实现方式二》

  • 讲解了另一种实现回收复用的方法
  • 实现了针对每个Item布局,同时在布局后更改每个Item的属性的方法

9、《自定义控件三部曲视图篇(九)——RecycerView系列之六实现滚动画廊控件》

  • 实现2D画廊
  • 实现fling校正的方法
  • 实现3D画廊的方法

 

如果你喜欢我的文章,你可能更喜欢我的公众号

启舰杂谈

 

 

 

相关推荐
封面 1 序 2 捐助说明 5 目 录 7 第一章 View的绘图流程 12 1.1、概述 12 1.2、Activity的组成结构 13 1.3、View树的绘图流程 15 1.3.1 测量组件大小 16 1.3.2 确定子组件的位置 17 1.3.3 绘制组件 18 1.4、说点别的 22 1.5 练习作业 22 第二章 Graphics2D API 23 2.1、概述 23 2.2、Point类和PointF类 23 2.3、Rect类和RectF类 25 2.4、Bitmap类和BitmapDrawable类 32 2.5、Canvas类与Paint类 34 2.5.1 绘图概述 34 2.5.2 Paint类 34 2.5.3 Canvas类 39 2.6 练习作业 63 第三章 使用Graphics2D实现动态效果 64 3.1 概述 64 3.2 invalidate()方法 65 3.3 坐标转换 69 3.4 剪切区(Clip) 73 3.5 案例:指针走动的手表 82 3.6 练习作业 88 第四章 双缓存技术 89 4.1 双缓存 89 4.2 在屏幕上绘制曲线 90 4.3 在屏幕上绘制矩形 99 4.4 案例:绘图App 104 4.4.1 绘图属性 106 4.4.2 软件参数 108 4.4.3 绘图缓冲区 109 4.4.4 撤消操作 111 4.4.5 图形绘制 113 4.4.6 绘图区 118 4.4.7 主界面 119 4.5 练习作业 122 第五章 阴影、渐变和位图运算 123 5.1 概述 123 5.2 阴影 123 5.3 渐变 125 5.3.1 线性渐变(LinearGradient) 126 5.3.2 径向渐变(RadialGradient) 130 5.3.3 扫描渐变(SweepGradient) 135 5.3.4 位图渐变(BitmapShader) 138 5.3.5 混合渐变(ComposeShader) 140 5.3.6 渐变与Matrix 142 5.4 位图运算 143 5.4.1 PorterDuffXfermode 143 5.4.2 图层(Layer) 146 5.4.3 位图运算技巧 148 5.5 案例1:圆形头像 152 5.6 案例2:刮刮乐 156 5.7 练习作业 161 第六章 自定义组件 163 6.1 概述 163 6.2 自定义组件的基本结构 164 6.3 重写onMeasure方法 166 6.4 组件属性 175 6.4.1 属性的基本定义 175 6.4.2 读取来自style和theme中的属性 181 6.5 案例1:圆形ImageView组件 186 6.6 案例2:验证码组件CodeView 190 6.7 练习作业 202 第七章 自定义容器 204 7.1 概述 204 7.2 ViewGroup类 205 7.2.1 ViewGroup常用方法 205 7.2.2 ViewGroup的工作原理 208 7.2.3 重写onLayout()方法 213 7.3 CornerLayout布局 217 7.3.1 基本实现 217 7.3.2 内边距padding 224 7.3.3 外边距margin 228 7.3.4 自定义LayoutParams 238 7.4 案例:流式布局(FlowLayout) 246 7.5 练习作业 256 第八章 Scroller与平滑滚动 257 8.1 概述 257 8.2 认识scrollTo()和scrollBy()方法 258 8.3 Scroller类 264 8.4 平滑滚动的工作原理 271 8.5 案例:触摸滑屏 272 8.5.1 触摸滑屏的技术分析 272 8.5.2 速度跟踪器VelocityTracker 273 8.5.3 触摸滑屏的分步实现 274 8.6 练习作业 285 第九章 侧边栏 287 9.1 概述 287 9.2 使用二进制保存标识数据 289 9.2.1 位运算符 289 9.2.2 位运算的常用功能 292 9.3 继承自ViewGroup的侧边栏 293 9.4 继承自HorizontalScrollView的侧边栏 304 9.5 练习作业 312 第十章 加强版ListView 313 10.1 概述 313 10.2 ListView的基本使用 314 10.3 ListItem随手指左右滑动 318 10.4 向右滑动删除ListItem 326 10.5 滑动ListItem出现删除按钮 336 10.5.1 列表项专用容器ExtendLayout 337 10.5.2 列表
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页