Paint|Paint Canvas高级绘制-Paint

概念 画笔,保存了绘制几何图形、文本和位图的样式和样色信息
常用API 常用API主要如颜色,效果和文本相关等

Paint mPaint = new 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.FILL); //描边效果 mPaint.setStrokeWidth(4); //描边宽度 mPaint.setStrokeCap(Paint.Cap.ROUND); //圆角效果 mPaint.setStrokeJoin(Paint.Join.MITER); //拐角风格 mPaint.setShader(new SweepGradient(200, 200, Color.BLUE, Color.RED)); //设置环形渲染器 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(38); // 设置字体大小 mPaint.setTextAlign(Paint.Align.LEFT); //对其方式 mPaint.setUnderlineText(true); // 设置下划线String str = "Android高级工程师"; Rect rect = new Rect(); mPaint.getTextBounds(str, 0, str.length(), rect); //测量文本大小,将文本大小信息存放在rect中 mPaint.measureText(str); //获取文本的宽 mPaint.getFontMetrics(); //获取字体度量对象

字的度量 Paint|Paint Canvas高级绘制-Paint
文章图片
image.png 颜色相关 LinearGradient线性渲染 【Paint|Paint Canvas高级绘制-Paint】构造方法:
/** * * @param x0 渐变起始端点的x坐标 * @param y0 渐变起始端点的y坐标 * @param x1 渐变终点端点的x坐标 * @param y1 渐变终点端点的y坐标 * @param color0 起始端点的颜色 * @param color1 终点端点的颜色 * @param tile 端点范围之外的着色规则,类型是TileMode */ public LinearGradient(float x0, float y0, float x1, float y1, int color0, int color1, Shader.TileMode tile) {}// 使用: mShader = new LinearGradient(0, 0, 500, 500, new int[]{Color.RED, Color.BLUE}, null, Shader.TileMode.CLAMP); mPaint.setShader(mShader); canvas.drawCircle(250, 250, 250, mPaint);

    推荐阅读