Android2D Draw on SurfaceView

We can draw something on SurfaceView like general View.

SurfaceView is usually used in case of Game. High frame-rate change is required.
I’m not game developer, so I use it Camera preview.

Sample

public class CustomSurfaceView extends SurfaceView implements Callback
{
    private Paint paint;
     
    public CustomSurfaceView ( Context context )
    {
        super(context);
        getHolder().addCallback(this);
        paint = new Paint(Paint.ANTI_ALIAS_FLAG);
    }
 
    @Override
    public void surfaceChanged ( SurfaceHolder holder, int format, int width, int height )
    {
        // Change Surfaceview event
    }
 
    @Override
    public void surfaceCreated ( SurfaceHolder holder )
    {
        // When created
        // Draw something Lock
        Canvas canvas = holder.lockCanvas();
        canvas.drawColor(Color.BLACK);
        paint.setColor(Color.GREEN);
        canvas.drawRect(0, 0, 50, 50, paint);
 
        holder.unlockCanvasAndPost(canvas);
         
    }
 
    @Override
    public void surfaceDestroyed ( SurfaceHolder holder )
    {
    }
}

To add this view, it is same way of general View class.(Use addContentView, or setContentView).
Basics is here.