import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.DashPathEffect;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PathEffect;
import android.os.Build;
import android.util.AttributeSet;
import android.view.View;
/**
* Created by yanchengmengon 2017/3/22.
*/
public class DashLineView extends View {
private float y=500;
private int lineColor=android.R.color.darker_gray;
public DashLineView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public DashLineView(Context context) {
super(context);
}
public DashLineView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public DashLineView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setStyle(Paint.Style.STROKE);
paint.setColor(getResources().getColor(lineColor));//颜色可以自己设置
Path path = new Path();
path.moveTo(0, 0);//起始坐标
path.lineTo(0, y);//终点坐标
PathEffect effects = new DashPathEffect(new float[]{8, 8, 8, 8}, 1);//设置虚线的间隔和点的长度
paint.setPathEffect(effects);
canvas.drawPath(path, paint);
}
/**
* 设置虚线终点y坐标:也就是虚线长度
* @param y
*/
@Override
public void setY(float y) {
this.y = y;
invalidate();
}
/**
* 设置虚线颜色
* @param lineColor
*/
public void setLineColor(int lineColor) {
this.lineColor = lineColor;
invalidate();
}
}
android自定义水平虚线View
最新推荐文章于 2024-03-06 16:00:35 发布