android自定義水平虛線View
阿新 • • 發佈:2019-01-07
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(); } }