自定义View——Paint

2019-10-15  本文已影响0人  四喜汤圆

网络一线牵 HenCoder Android 开发进阶: 自定义 View 1-1 绘制基础

一、作用

Paint 保存了绘制时的style and color信息。

二、Paint API

Android画笔基础(Paint)

1. 内部类

2. 构造函数

// 创建默认画笔,使用默认配置
Paint()
// 创建一个新画笔,并通过flags参数进行配置
Paint(int flags)
// 创建一个新画笔,并复制参数中画笔的设置
Paint(Paint paint)

3. 常量

4. 公开方法

(1)flags 相关

// 获取画笔相关的一些设置(标志)
int getFlags()
// 设置标志,该方法会覆盖之前设置的内容,只有最后一次的生效
void setFlags(int flags)
// 复制 Paint 的设置
void set(Paint src)
// 将画笔恢复为默认设置
void reset() 

常用的 flags 包括

可以同时设置多个 flags

paint.setFlags(Paint.ANTI_ALIAS_FLAG | Paint.DITHER_FLAG);

(2)画笔颜色相关

// 只返回颜色的 alpha 值
int getAlpha()
// 设置透明度
void setAlpha(int a)
// 返回画笔的颜色
int getColor()
// 设置颜色
void setColor(int color)
// 设置带透明通道的颜色
void setARGB(int a,int r, int g,int b)

可以用十进制或十六进制设置透明度

paint.setAlpha(204);
paint.setAlpha(0xXX);

可以用十进制或十六进制设置颜色

paint.setARGB(204,255,255,255,0);
paint(0xCC,0xFF,0xFF,0x00);

(3)画笔style(3种)

// 设置画笔 style
paint.setStyle(Paint.Style style);

共有3种 style

画笔宽度(画笔粗细)

// 设置画笔 style
paint.setStyle(Paint.Style style);
paint.setStrokeWidth(float width);

设置画笔宽度后,这条宽度是同时向两边进行扩展的。


摘自GCseSloop

画笔线帽(线段开始和结束时的效果)

// 指定线段开始和结束时的效果
void setStrokeCap(Paint.Cap cap)

共有3种Cap

摘自GCseSloop

线段连接方式(拐角类型)

void setStrokeJoin(Paint.Join join)

共有3种 Join

摘自GcsSloop

(4)PathEffect
PathEffect 在绘制之前修改几何路径,它可以实现划线,自定义填充效果和自定义笔触效果。它可作用于 Canvas 的各种绘制。

(5)文字设置相关

三、使用

1. Paint 的使用

参考文献

Path
HenCoder Android 开发进阶: 自定义 View 1-2 Paint 详解

上一篇 下一篇

猜你喜欢

热点阅读