// VerticalLines Example // Source Code File: MyView.java package it372.sjost.verticallines; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.MotionEvent; import android.view.View; import java.util.ArrayList; public class MyView extends View { // Initialize drawing color to white. private String color; // Arraylist to hold x-values for // vertical lines. private ArrayList lines; // Paint object for setting the color // and line width. private Paint paint; @SuppressLint("ClickableViewAccessibility") public MyView(Context context) { super(context); // Initialize Paint object paint = new Paint( ); paint.setStrokeWidth(10.0f); // Instantiate ArrayList collection. lines = new ArrayList( ); // Attach onTouch listener to MyView // object this.setOnTouchListener( (v, e) -> { if (e.getAction( ) == MotionEvent.ACTION_UP) { int x = Math.round(e.getX( )); lines.add(new VertLine(x, color)); MyView.this.invalidate( ); } return true; }); } public void setColor(String color) { this.color = color; } @Override public void onDraw(Canvas canvas) { int height = MyView.this.getHeight( ); for(VertLine line: lines) { int x = line.getX( ); String color = line.getColor( ); paint.setColor(Color.parseColor(color)); canvas.drawLine(x, 0, x, height, paint); } } }