Paint 顾名思义就是画笔,可以用来设置颜色、测量文字、设置图层混合模式、颜色滤镜等等。
Api中提供了两个构造方法Paint()和Paint(int flags),其中flags的值有以下几种:
/**
* int flags
* //抗锯齿标志
* public static final int ANTI_ALIAS_FLAG = 0x01;
* //使位图过滤的位掩码标志 图像在动画进行中会滤掉对Bitmap图像的优化操作,加快显示
* //速度,本设置项依赖于dither和xfermode的设置
* public static final int FILTER_BITMAP_FLAG = 0x02;
* //使位图进行有利的抖动的位掩码标志 会使绘制出来的图片颜色更加平滑和饱满,图像更加清晰
* public static final int DITHER_FLAG = 0x04;
* //下划线
* public static final int UNDERLINE_TEXT_FLAG = 0x08;
* //中划线
* public static final int STRIKE_THRU_TEXT_FLAG = 0x10;
* //加粗
* public static final int FAKE_BOLD_TEXT_FLAG = 0x20;
* //使文本平滑线性扩展的标志
* public static final int LINEAR_TEXT_FLAG = 0x40;
* //使文本的亚像素定位的绘图标志
* public static final int SUBPIXEL_TEXT_FLAG = 0x80;
* //绘制文本时允许使用位图字体的绘图标志
* public static final int EMBEDDED_BITMAP_TEXT_FLAG = 0x400;
*/
以ANTI_ALIAS_FLAG为例,调用第二个构造方法和调用paint.setAntiAlias(boolean flag);的效果是一样的。
下面看一下paint提供的其他方法
mPaint = new Paint();
//设置画笔颜色
mPaint.setColor(Color.RED);
//设置字体大小
mPaint.setTextSize(20);
//设置描边效果 FILL填充 STROKE描边 FILL_AND_STROKE填充+描边
mPaint.setStyle(Paint.Style.STROKE);
//设置描边宽度
mPaint.setStrokeWidth(15);
//设置图层混合模式,18种
mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
//设置字体风格,加粗、倾斜等
mPaint.setTypeface(Typeface.SANS_SERIF);
//设置下划线
mPaint.setUnderlineText(true);
//设置删除线,即setFlags(STRIKE_THRU_TEXT_FLAG)
mPaint.setStrikeThruText(true);
//设置倾斜弧度
mPaint.setTextSkewX(2);
//设置文字X方向缩放值
mPaint.setTextScaleX(0.7f);
//设置文字对齐方式
mPaint.setTextAlign(