目录

    • Cap枚举
    • Join枚举

Cap枚举

Cap指定了线段和路径的开始和结束的描边处理方式,共三种处理方式 ,默认处理方式是BUTT
如下:

  • BUTT 貌似与SQUARE一样
  • ROUND 线段的开始和结束的是圆形的
  • SQUARE 线段的开始和结束的是方形的

看图说话,如下图所示

看圈住的部分,线段结尾显示不一样 红线为BUTT 绿线为ROUND 蓝线为SQUARE

Join枚举

Join指定了线段和曲线段连接处的描边处理方式,共三种处理方式,默认处理方式是MITER
如下:

  • MITER 连接处显示为直角
  • ROUND 连接处显示为圆角
  • BRVEL 连接处显示为斜角(感觉被切了一刀)

看图说话,如下图所示

看圈住的部分,每个拐角处显示不一样 红线为MITER 绿线为ROUND 蓝线为BRVEL

注意上面所说的都是描边处理,只有在Paint的setStyle为Paint.Style.STROKEPaint.Style.FILL_AND_STROKE下起作用

示例代码如下:

package com.github.xiaohu409.pathdemo;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Path;import android.util.AttributeSet;import android.view.View;/** * 文件名:PathView * 描述: * 作者:  hutao * 日期:  2019/3/21 * 版本:  v1.0 */public class PathView extends View {    private Paint paint;    private Path path;    public PathView(Context context) {        this(context, null);    }    public PathView(Context context, AttributeSet attrs) {        this(context, attrs, 0);    }    public PathView(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);        init();    }    private void init() {        //创建画笔        paint = new Paint();        //设置画笔的填充样式        paint.setStyle(Paint.Style.STROKE);        //描边的宽度        paint.setStrokeWidth(14);        //创建路径        path = new Path();        //设置路径的起始位置        path.moveTo(10, 10);        for (int i = 0; i <= 40; i++) {            //生成路径            path.lineTo(i * 25, (float) Math.random() * 100);        }        paint.setTextSize(100);        paint.setTextAlign(Paint.Align.RIGHT);    }    @Override    protected void onDraw(Canvas canvas) {        super.onDraw(canvas);        //指定画笔的开始结束描边处理        paint.setStrokeCap(Paint.Cap.BUTT);        //指定画笔的连接处的描边处理        paint.setStrokeJoin(Paint.Join.MITER);        //指定画笔的颜色        paint.setColor(Color.RED);        //画指定路径        canvas.drawPath(path, paint);        //设置画板的位移距离        canvas.translate(0, 60);        paint.setStrokeCap(Paint.Cap.ROUND);        paint.setStrokeJoin(Paint.Join.ROUND);        paint.setColor(Color.GREEN);        canvas.drawPath(path, paint);        canvas.translate(0, 60);        paint.setStrokeCap(Paint.Cap.SQUARE);        paint.setStrokeJoin(Paint.Join.BEVEL);        paint.setColor(Color.BLUE);        canvas.drawPath(path, paint);        canvas.translate(0, 60);        canvas.drawTextOnPath("huao", path, 120, 120, paint);    }}

更多相关文章

  1. 缩放图片 : matrix.setScale(0.5f,0.5f);
  2. 水波纹效果---3环波纹
  3. Text控件运用小收集
  4. android 线段与矩形碰撞检测
  5. 自定义带百分比进度条
  6. android学习 4-25使用Path 绘制几何图形
  7. Android画一个随意拖动的圆形
  8. Android(安卓)ApiDemos示例解析(129):Views->Layout Animation->
  9. Android(安卓)USB Host与HID通讯

随机推荐

  1. Logger详解(一)
  2. Android Studio镜像设置
  3. 【android】android短信数据库表
  4. Android快速集成框架:MVP+Dagger+主流框架
  5. Android创建桌面快捷方式
  6. Android软件开发常用系统控件(一) TextView
  7. 第十四周实验报告:实验四 Android程序设计
  8. listview android:cacheColorHint,listSe
  9. 解决 android如何设置全屏模式
  10. android实现TextView多行文本滚动