这门课解决什么工作场景

很多做 Android 开发的人,业务逻辑写得很溜,但一遇到产品经理甩过来“画一个带渐变进度的圆环”“做个能跟手滑动的悬浮球”“把列表滑动和头部视图联动起来”这类需求,就只能满世界找开源库。找到的库往往和实际设计稿对不上,改起来又无从下手。这门课聚焦的就是这块短板:自定义控件。它不教基础语法,直接对着三类常见场景——纯绘制、多控件拼装、在系统控件上加逻辑——拆解实现过程。如果你受够了每次改 UI 都靠复制粘贴别人代码,这门课能帮你把“看懂别人怎么写”变成“自己照着设计图写出来”。

适合什么基础与建议先看哪几块

这门课不适合零基础。你得熟 Android 基本控件用法,写过 Activity 和列表,懂 Kotlin 或 Java 基本语法,知道怎么在 XML 里摆布局。满足这个前提,再看这套资料才不费劲。建议先看自绘那块的静态绘制和滑动球,把画笔、坐标系、事件分发这几个概念跑通;接着看组合式,理解怎么把几个原生控件捏成一个可复用整体,并留出接口回调;最后看扩展式,重点看它怎么在系统滚动视图里挂监听、读关键滑动参数。这个顺序是按“从自己画”到“拼现成”再到“改系统行为”递进的,跳着看容易卡在事件处理上。

学完能独立做什么与资料怎么配合练习

学完之后,你拿到一张自定义交互的设计稿,能自己拆出绘制步骤、定好测量逻辑、处理好手势冲突,独立做出可复用的自定义控件,不用再依赖现成轮子。资料里有几段项目演示和代码,建议别光看视频,边看边在 Android Studio 里跟着敲。先照着把静态圆球画出来,再补上滑动逻辑,亲手复现那个修 bug 的过程——尤其是坐标变量那种坑,自己踩一遍比看十遍管用。组合式那块,自己试着把接口回调改一改参数,看控件表现怎么变。扩展式部分,把滑动监听的关键参数打日志看一遍,理解每个值在什么动作下变化。这套资料偏实战演示,不是背概念,动手跟着过一遍,比囤着看更有用。


了解Android中自定义控件理论基础内容,懂得各种自定义控件效果的实现过程,提升自定义控件实战能力

课程目录

*   01 自绘自定义/

  *   01 自定义控件介绍

  *   02 完成画画版项目上

  *   03 完成画画版项目下

  *   04 绘制圆球的静态效果

  *   05 自定义控件的三大类型

  *   06 绘制圆球根据手指滑动而滑动

  *   07 解决小圆球的BUG(主要是X的变量问题)

*   02 组合式自定义控件/

  *   01 组合式自定义的意义

  *   02 完成组合式控件的基本效果

  *   03 怎么动态改变自定义控件最大值

  *   04 设置组合式自定义控件的接口回调

*   03 扩展式自定义控件/

  *   01 分享一个自定义控件实现思路关键点的方法

  *   02 ObservableScrollView里定义我们的接口

  *   03 滑动监听的关键参数怎么看

  *   04 完成最终的效果

*   04 自定义开关/

  *   01 实现自定义开关按钮的思路

  *   02 实现自定义开关按钮的静态效果

  *   03 实现自定义开关按钮的点击事件上

  *   04 实现自定义开关按钮的点击事件下

  *   05 实现自定义开关按钮的滑动效果

  *   06 完成自动滑动的功能

  *   07 解决事件冲突的问题

  *   08 自定义控件的属性,及课后作业的布置

*   05 视差特效/

  *   01 视察控件实现的整体思路及效果演示

  *   02 ListView效果的基本显示

  *   03 ListView添加头布局

  *   04 ListView中overScrollBy的介绍上

  *   05 完成图片的放大效果

  *   06 触摸事件让滑动图片重新恢复原有的样子(属性动画)

  *   07 侧边索引的思路讲解及效果演示

  *   08 把汉字转换为拼音工具类的编写

  *   09 填充109将数据到集合中并进行排序

  *   10 判断当前首字母和上一个条目的首字母是否一致

  *   11 侧边索引字母和ListVIew想结合

*   06 自绘式侧拉索引/

  *   01 侧边索引的思路讲解及效果演示

  *   02 侧边索引字母绘制上

  *   03 侧边索引字母绘制中(计算公式绘图说明)

  *   04 侧边索引字母绘制下(代码实现绘制)

  *   05 侧边索引触摸事件上效果的基本显示

  *   06 侧边索引触摸事件下效果优化

  *   07 侧边索引字母的监听回调

  *   08 把汉字转换为拼音工具类的编写

  *   09 填充109将数据到集合中并进行排序

  *   10 判断当前首字母和上一个条目的首字母是否一致

  *   11 侧边索引字母和ListVIew想结合

*   07 结课测试/

  *   01 结课测试