![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android view绘制
文章平均质量分 92
Lu'Blog
人生的道路上,无论如何都回避不了现实的重重困难,事业、爱情没有永远的一帆风顺,家庭、学业没有真正的心想事成。但是,只要你不去推诿,不胆怯,保持信心满满,保持良好的心态和旺盛的精力,努力的奋进,你就一定会知道“发光并非太阳的专利,你也可以发光”。
展开
-
自定义控件之绘图篇:drawText()详解
一、概述1、四线格与基线小时候,我们在刚开始学习写字母时,用的本子是四线格的,我们必须把字母按照规则写在四线格内。比如:那么问题来了,在canvas在利用drawText绘制文字时,也是有规则的,这个规则就是基线!我们先来看一下什么是基线:可见基线就是四线格中的第三条线!也就是说,只要基线的位置定了,那文字的位置必然是定了的!2、canvas转载 2017-08-17 09:35:55 · 900 阅读 · 0 评论 -
自定义View之总结
一、View绘制的流程框架 View的绘制是从上往下一层层迭代下来的。DecorView-->ViewGroup(--->ViewGroup)-->View ,按照这个流程从上往下,依次measure(测量),layout(布局),draw(绘制)。关于DecorView,可以看这篇文章。二、Measure流程顾名思义,就是测量每个控件的大小。原创 2017-08-28 17:43:11 · 435 阅读 · 0 评论 -
自定义控件之绘图篇:canvas变换与操作
首发:http://blog.csdn.net/harvic880925/article/details/39080931相关文章:《Android自定义控件三部曲文章索引》: http://blog.csdn.net/harvic880925/article/details/50995268一、平移(translate)canvas中有一个函数translate(转载 2017-08-15 12:22:36 · 534 阅读 · 0 评论 -
自定义控件之视图篇:FlowLayout自适应容器实现
一、XML布局从布局图中可以看到,FlowLayout中包含了很多TextView.难度不大,布局代码如下:先定义一个style,这是为FlowLayout中的TextView定义的:style name="text_flag_01"> item name="android:layout_width">wrap_contentitem> item name=转载 2017-08-26 17:19:23 · 510 阅读 · 0 评论 -
自定义控件之绘图篇:Canvas与图层(二)
一、FLAG的具体意义1、FLAG概述有关save系列函数,在canvas中总共有如下几个:public int save() public int save(int saveFlags) public int saveLayer(RectF bounds, Paint paint, int saveFlags) public int saveLayer(flo转载 2017-08-24 10:06:55 · 812 阅读 · 0 评论 -
MeasureSpec之详细分析
本篇主要对MeasureSpec结构、源码、模式进行分析,如果不同意见,尽情联系小弟,如要转载,请注明来源,小石头的博客: http://blog.csdn.net/lu10241883151结构:SPEC_MODE(32,31)SPEC_SIZE(30,...,1) 对于详细测量值(measureSpec)需要两样东西来确定它原创 2017-07-06 09:52:12 · 1010 阅读 · 0 评论 -
自定义控件之绘图篇:Canvas与图层(一)
一、如何获得一个Canvas对象方法一:自定义view时, 重写onDraw、dispatchDraw方法(1)、定义 我们先来看一下onDraw、dispatchDraw方法的定义@Overrideprotected void onDraw(Canvas canvas) { super.onDraw(canvas);}@Overrideprotected void di转载 2017-08-24 09:36:38 · 3927 阅读 · 1 评论 -
Activity启动流程详解
1.Android程序流程众所周知,我们的java程序想要开启需要依赖于main方法,也就是我们的程序入口(主线程)进入,但是在我们日常开发android程序的过程当中我们并没有发现main方法的存在,那么android当中的是如何开始运行的?熟悉的朋友们可能都知道在android当中存在一个叫做ActivityThread的类,这个类代表的是android当中的主线程,而在这个类当中我们看到了比...原创 2018-06-12 22:52:08 · 2582 阅读 · 0 评论 -
自定义控件之测量篇:测量与布局
一、ViewGroup绘制流程注意,View及ViewGroup基本相同,只是在ViewGroup中不仅要绘制自己还是绘制其中的子控件,而View则只需要绘制自己就可以了,所以我们这里就以ViewGroup为例来讲述整个绘制流程。绘制流程分为三步:测量、布局、绘制 分别对应:onMeasure()、onLayout()、onDraw() 其中,他们三个的作用分别如下: onMe转载 2017-08-26 15:21:16 · 681 阅读 · 0 评论 -
Android中图像变换Matrix的原理分析
一 Matrix的数学原理 在Android中,如果你用Matrix进行过图像处理,那么一定知道Matrix这个类。android中的Matrix是一个3 x 3的矩阵,其内容如下:Matrix的对图像的处理可分为四类基本变换: Translate 平移变换Rotate 旋转变换Scale转载 2017-09-04 15:58:26 · 669 阅读 · 0 评论 -
自定义控件之绘图篇:区域(Region)
一、构造Region1、基本构造函数 public Region() //创建一个空的区域 public Region(Region region) //拷贝一个region的范围 public Region(Rect r) //创建一个矩形的区域 public Region(int left, int top, int right, int botto转载 2017-08-15 17:50:35 · 4896 阅读 · 0 评论 -
自定义控件之绘图篇:Paint之ColorMatrix与滤镜效果
一、矩阵概述1、定义称为m*n矩阵2、矩阵乘法矩阵乘法其实并不难,它的意思就是将第一个矩阵A的第一行,与第二个矩阵B的第一列的数字分别相乘,得到的结果相加,最终的值做为结果矩阵的第(1,1)位置的值(即第一行,第一列)。 同样,A矩阵的第一行与B矩阵的第二列的数字分别相乘然后相加,结果做为结果矩阵第(1,2)位置的值(即第一行第二列)。转载 2017-08-21 14:21:14 · 448 阅读 · 0 评论 -
自定义控件之绘图篇:Paint之函数大汇总
一、基本用法1、概述我们先来看一下paint中基本设置的函数都有哪些: reset() 重置画笔 setColor(int color) 给画笔设置颜色值 setARGB(int a, int r, int g, int b) 同样是设置颜色,但是利用ARGB分开设置 setAlpha(int a) 设置画笔透明度 setStyle(Paint.St转载 2017-08-18 15:45:16 · 1218 阅读 · 0 评论 -
自定义控件之绘图篇:Path之贝赛尔曲线和手势轨迹、水波纹效果
从这篇开始,我将延续androidGraphics系列文章把图片相关的知识给大家讲完,这一篇先稍微进阶一下,给大家把《Android Graphics(二):路径及文字》略去的quadTo(二阶贝塞尔)函数,给大家补充一下。 本篇最终将以两个例子给大家演示贝塞尔曲线的强大用途: 1、手势轨迹利用贝塞尔曲线,我们能实现平滑的手势轨迹效果 2、水波纹效果转载 2017-08-17 15:41:46 · 639 阅读 · 0 评论 -
自定义控件之绘图篇:Paint之setColorFilter
一、setColorFiltersetColorFilter的完整声明为:public ColorFilter setColorFilter(ColorFilter filter) 参数是传入ColorFilter的对象,其实ColorFilter是一个空对象,其中什么也没有:public class ColorFilter { int nat转载 2017-08-21 16:11:55 · 592 阅读 · 0 评论 -
自定义控件之绘图篇:概述及基本几何图形绘制
一、Paint与Canvas像我们平时画图一样,需要两个工具,纸和笔。Paint就是相当于笔,而Canvas就是纸,这里叫画布。所以,凡有跟要要画的东西的设置相关的,比如大小,粗细,画笔颜色,透明度,字体的样式等等,都是在Paint里设置;同样,凡是要画出成品的东西,比如圆形,矩形,文字等相关的都是在Canvas里生成。下面先说下Paint的基本设置函数:p转载 2017-08-15 16:01:26 · 301 阅读 · 0 评论 -
自定义控件之绘图篇:路径及文字
一、创建路径canvas中绘制路径利用:void drawPath (Path path, Paint paint)1、直线路径void moveTo (float x1, float y1):直线的开始点;即将直线路径的绘制点定在(x1,y1)的位置;void lineTo (float x2, float y2):直线的结束点,又是下转载 2017-08-15 17:04:20 · 378 阅读 · 0 评论 -
自定义控件之绘图篇:Paint之setXfermode(一)
一、GPU硬件加速1、概述GPU英文全称Graphic Processing Unit,中文翻译为“图形处理器”。与CPU不同,GPU是专门为处理图形任务而产生的芯片。 在GPU出现之前,CPU一直负责着所有的运算工作,CPU的架构是有利于X86指令集的串行架构,CPU从设计思路上适合尽可能快的完成一个任务。但当面对类似多媒体、图形图像处理类型的任务时,就显得力不从心。因为在多媒体转载 2017-08-22 18:28:21 · 429 阅读 · 0 评论 -
UI测量流程
前言 上一篇Activity的生命周期是有系统服务所触发,由系统服务发起handle调用到handleResumeActivity()开始绘制流程然后最终交由ViewRootImpl调用到performTraversals()然后依次之行了我们UI的实际绘制流程measure(测量),layout(布局摆放),Draw(绘制)。在这一篇文章中主要介绍view的测量流程。一 View的测...原创 2018-06-14 17:05:27 · 856 阅读 · 0 评论