View详解
文章平均质量分 72
起步于View简介,逐步深入构建View体系,其中会涉及到View的基本生命周期,Canvas函数说明,Path使用说明,PathMeasure使用说明,随后进一步阐述自定义View的其他方式。
小海编码日记
Android开发工程师,先后从事ROM定制,App架构设计,产品需求研发等工作
展开
-
View详解(7)-六边形加载动画
前几篇中我们学习过了一些规则及不规则图形的绘制技巧,不知道大家理解是否到位,这篇文章中将继续前文主题,研究Path的基本应用,前文中我们已经基本了解了Path的构建,接下来我们来学习一种比较炫酷的动画方案-路径动画,路径动画指的是某一图形或者控件按照固有路径进行绘制或者运动。下面展示的就是一个典型的路径动画: 下面我们一起学习下如何实现该动画。形成过程按照惯有思路,我们观察...原创 2018-11-06 16:50:08 · 395 阅读 · 0 评论 -
View详解(6)
废话不多说,直接进入正文,上文中我们已经看到了这篇要实现的动画效果如下:我们可以看到该动画由两个主要元素构成: 张合的怪物脸 从右向左移动的食物 关于从右向左移动的食物,相信各位亲们第一眼就想到了位移动画,那么在Canvas绘制时,怎么做到动画呢?前篇的经验已经很多了,让圆心坐标成为动点,通过 ValueAnimator改变圆心坐标就好(PS:我这里建议做成 mS...原创 2018-10-18 17:21:34 · 240 阅读 · 0 评论 -
View详解(5)
上篇中简单介绍了Path#moveTo(),Path#lineTo(),Path#addArc(),不知道勤劳的猿们学习的怎么样了。接下来我们还是以Path为主进行介绍,首先再回头看下上次最后说要实现的效果吧: 废话不多说,动手撸起。形成过程仔细观察上图,不难发现该动画起于三角形,止于类圆,每次动态添加一个顶点,附图说明如下: 相信有上图,大家理解起来就很easy...原创 2018-10-18 17:20:15 · 238 阅读 · 0 评论 -
自定义View详解(4)
在上文中我们简单介绍了Canvas#drawCircle()的使用方式,以及Paint#setStyle(),Paint#setStrokeWidth(),Paint#setColor()等相关函数,不知道小伙伴们了解了多少?那么是不是所有的图形都能通过圆来描述呢?当然不行,那么熟悉API套路的我们就应该知道,这时候应该去看Canvas源码中提供的公有方法是否能满足我们的需求,这样我们就会看到...原创 2018-09-29 11:27:28 · 237 阅读 · 0 评论 -
自定义View详解(3)
大家教师节快乐啊,不知道勤学的Coder们有没有去尝试下绘制上篇文章中最后留下的进阶效果,不管怎样,还是一起动手写一遍吧!看看套路是否一致。水波纹首先来看图-水波纹中的效果,其具有以下特点: 从内到外四层,内圆外环; 从内到外四个色值; 最内部圆局于View中心; 圆和环同心; 看出以下几点,我们就可以开始按照套路画图了,老套路走起(...原创 2018-09-25 16:33:21 · 242 阅读 · 0 评论 -
自定义View详解(2)
首先纠正下上篇的一个描述性错误,对于invalidate和postInvalidate的区别: invalidate:在主线程内部更新时使用; postInvalidate:在非UI线程更新时使用,postInvalidate会把更新要求回传至ViewRootImpl中进行响应; 延续上文内容,进一步针对View的基本概念做详细介绍,接下来我们将学习编写自己的第一个自定义V...原创 2018-09-25 16:30:47 · 181 阅读 · 0 评论 -
自定义View详解(1)
好久好久没更新了,不知道大家还有没有在看以前的一些博文,这段时间换了个坑位还是有点小忙呢!鉴于最近工作接触自定义View,Canvas比较多,所以打算开个系列,详细讲讲View的那些事。View是什么要学习自定义View,我们首先应该清楚的认识到View是个什么东西。那么View究竟是什么呢? 从代码层面看,View是一个类,是所有控件的直接或间接父类,详情见图-View子孙关系...原创 2018-09-25 16:29:36 · 290 阅读 · 0 评论