Implementation and demo of the Android canvas
Today we bring you a simple implementation of the Android canvas function. The following is:
The following are the key source code:
import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Paint.Style;import android.graphics.PaintFlagsDrawFilter;import android.graphics.Path;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;import android.view.View.OnTouchListener;import android.view.SurfaceHolder;import android.view.SurfaceHolder.Callback;import android.view.SurfaceView;public class MyView extends SurfaceView implements Callback,OnTouchListener{private Paint p = new Paint();private Path path = new Path();public MyView(Context context, AttributeSet attrs) {super(context, attrs);getHolder().addCallback(this);p.setColor(Color.RED);p.setTextSize(10);p.setAntiAlias(true);p.setStyle(Style.STROKE);setOnTouchListener(this);}public void draw(){Canvas canvas = getHolder().lockCanvas();canvas.drawColor(Color.WHITE);canvas.drawPath(path, p);getHolder().unlockCanvasAndPost(canvas);}public void clear(){path.reset();draw();}@Overridepublic void surfaceCreated(SurfaceHolder holder) {draw();}@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {// TODO Auto-generated method stub}@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {// TODO Auto-generated method stub}@Overridepublic boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:path.moveTo(event.getX(), event.getY());draw();break;case MotionEvent.ACTION_MOVE:path.lineTo(event.getX(), event.getY());draw();break;}return true;}}