自定义View学习笔记 From GcsSloop

本文是关于Android自定义View的学习笔记,详细介绍了基础部分,如坐标系、角度与弧度、颜色,以及进阶内容,包括View的绘制流程、Canvas的使用技巧和Path的绘制方法。特别强调了onMeasure、onDraw等关键方法的作用,以及Canvas的多种绘制功能,如绘制基本形状、文本和路径。同时,探讨了Matrix和PathMeasure在自定义View中的应用。
摘要由CSDN通过智能技术生成

首先强烈感谢GcsSloop推出的自定义View系列文章,地址http://www.gcssloop.com/customview/CustomViewIndex。好记性不如烂笔头,特将学习总结以本博客做记录:

一:基础部分

1.坐标系

三个系列方法:
    getLeft():距离父容器左
    getX():距离自身x轴
    getRawX():距离屏幕x轴

2.角度与弧度

180(角度)/deg = π(弧度)/rad

3.颜色

**颜色定义**
ARGB8888    四通道高精度32位   #FFFFFFFF
ARGB4444    四通道低精度16位   #FFFF
RGB565      屏幕默认16位
Alpha8          仅有透明通道8位
**混合模式**
RGB最终颜色=绘制的颜色+(1-绘制颜色的透明度)*Canvas的原色
*绘制颜色/原色=RGB*A(浮点 0~255--0.0f~1.0f)
*demo:0x88ffffff(色) = 0xffffff * (0x88/0xff)
核心代码 Paint.setfermode(Porter.MODE)

混合模式

二:进阶

1.流程

(1):构造器:布局文件引用一般调用双参数的方法
(2):onMeasure()
确定大小,如果对View的宽高进行修改了,不要调用 super.onMeasure( widthMeasureSpec, heightMeasureSpec); 要调用 setMeasuredDimension( widthsize, heightsize); 这个函数。
(3):onSizeChanged():这里的w,h就是最终的大小
(4):onLayout():child.layout(l,t,r,b)
(5):onDraw()
(6):公共方法与回调接口

2.Canvas

> 1.速查表
(1)绘制颜色 drawColor, drawRGB, drawARGB 使用单一颜色填充整个画布
(2)绘制基本形状 drawPoint, drawPoints, drawLine, drawLines, drawRect, drawRoundRect, drawOval, drawCircle, drawArc 依次为 点、线、矩形、圆角矩形、椭圆、圆、圆弧
(3)绘制图片 drawBitmap, drawPicture 绘制位图和图片
(4)绘制文本 drawText, drawPosText, drawTextOnPath 依次为 绘制文字、绘制文字时指定每个文字位置、根据路径绘制文字
(5)绘制路径 drawPath 绘制路径,绘制贝塞尔曲线时也需要用到该函数
(6)顶点操作 drawVertices, drawBitmapMesh 通过对顶点操作可以使图像形变,drawVertices直接对画布作用、 drawBitmapMesh只对绘制的Bitmap作用
(7)画布剪裁 clipPath, clipRect 设置画

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值