Android UI绘制

UI绘制-Paint(一)Paint基本属性及方法

2019-06-12  本文已影响0人  tingtingtina

系列文章传送门:
UI绘制-Paint(一)Paint基本属性及方法
UI绘制-Paint(二)颜色相关方法
UI绘制-Paint(三)图层混合模式
UI绘制-Paint(四)颜色过滤器 ColorFilter

mPaint = new Paint(); // 创建paint对象
mPaint.setColor(Color.RED);//设置颜色
mPaint.setARGB(255, 255, 255, 0); //设置Paint对象颜色,范围0~255
mPaint.setAlpha(200); // 设置alpha不透明度,范围0~255
mPaint.setAntiAlias(true); //抗锯齿
mPaint.setStyle(Paint.Style.STROKE); //描边效果
mPaint.setStrokeWidth(4); // 描边宽度,在 STROKE 和 FILL_AND_STROKE 下,可设置线条的宽度
mPaint.setStrokeCap(Paint.Cap.ROUND); // 圆角效果
mPaint.setStrokeJoin(Paint.Join.MITER); // 拐角风格
mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DARKEN)); //设置图层混合模式
mPaint.setColorFilter(new LightingColorFilter(0x00ffff, 0x000000)); // 设置颜色过滤器
mPaint.setFilterBitmap(true); // 设置双线性过滤
mPaint.setMaskFilter(new BlurMaskFilter(10, BlurMaskFilter.Blur.NORMAL)); //设置画笔遮罩滤镜,传入度数和样式
mPaint.setTextScaleX(2); // 设置文本缩放倍数
mPaint.setTextSize(30); // 设置字体大小
mPaint.setTextAlign(Paint.Align.LEFT); // 对齐方式
mPaint.setUnderlineText(true); // 设置下划线

setPaintStyle(Paint.Style style)

设置绘制的 Style

Paint.Style

setStrokeCap(Paint.Cap cap)

设置点的形状,但这个方法并不是专门用来设置点的形状的,而是一个设置线条端点形状的方法

Paint.Cap 点的形状

setStrokeJoin(Paint.Join join)

设置拐角风格

Paint.Join 拐角风格

setFilterBitmap(boolean filter)

设置是否使用双线性过滤来绘制 Bitmap

setFilterBitmap(true) 会将图片过渡像素变得平滑

setPathEffect(PathEffect effect)

设置图形轮廓效果,对 Canvas 所有的图形绘制有效,也就是 drawLine() drawCircle() drawPath() 这些方法等

PathEffect

单一效果: CornerPathEffect DiscretePathEffect DashPathEffect PathDashPathEffect
组合效果: SumPathEffect ComposePathEffect

setDither(boolean dither)

设置图像的抖动:true设置抖动(简单来说抖动更多的作用是在图像降低色彩深度绘制时,避免出现大片的色带与色块,看起来会更柔和)

字体

String string = "Android 开发";
Rect rect = new Rect();
mPaint.getTextBounds(string, 0 , string.length(), rect);//测量文本大小,将文本大小信息存放在rect中
mPaint.measureText(string);// 获取文本的宽
mPaint.getFontMetrics(); // 获取字体度量对象

字体的度量,是指对于指定字号的某种字体,在度量方面的各种属性,其描述参数包括:

image.png

获取文本高度 descent - ascent

上一篇 下一篇

猜你喜欢

热点阅读