package com.yesway.ycarplus.view; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.DashPathEffect; import android.graphics.Paint; import android.graphics.Paint.Style; import android.graphics.Path; import android.graphics.PathEffect; import android.util.AttributeSet; import android.view.View; /** * 画虚线的一个view * * @author liulm * */ public class DottedLine extends View { private int color = Color.WHITE; public DottedLine(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { setMeasuredDimension(widthMeasureSpec, heightMeasureSpec); super.onMeasure(widthMeasureSpec, heightMeasureSpec); } @SuppressLint("DrawAllocation") @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint p = new Paint(); p.setAntiAlias(true); p.setStyle(Style.STROKE); p.setColor(color); p.setStrokeWidth(10); PathEffect effects = new DashPathEffect(new float[] { 0, 10, 35, 2 }, 1); Path path = new Path(); path.moveTo(0, 0); path.lineTo(0, getMeasuredHeight()); path.lineTo(getMeasuredWidth(), getMeasuredHeight()); p.setPathEffect(effects); canvas.drawPath(path, p); } /** * 设置颜色 * * @param color */ public void setColor(int color) { this.color = color; invalidate(); } /** * 设置颜色值 * * @param color */ public void setColor(String color) { this.color = Color.parseColor(color); invalidate(); } }
时间: 2024-10-21 17:48:13