WhiteboardView in Android
public class WhiteboardView extends View {
private Paint mPaint;
private Path mPath;
public WhiteboardView(Context context) {
super(context);
init();
}
public WhiteboardView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public WhiteboardView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
mPaint = new Paint();
mPaint.setColor(Color.WHITE);
mPaint.setStrokeWidth(10);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeJoin(Paint.Join.ROUND);
mPath = new Path();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawColor(Color.BLACK); // set the background color of the view
canvas.drawPath(mPath, mPaint); // draw the path using the paint object
}
@Override
public boolean onTouchEvent(MotionEvent event) {
float x = event.getX();
float y = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mPath.moveTo(x, y);
return true;
case MotionEvent.ACTION_MOVE:
mPath.lineTo(x, y);
break;
case MotionEvent.ACTION_UP:
// do nothing
break;
default:
return false;
}
// invalidate the view to trigger a redraw
invalidate();
return true;
}
}