How to add a rectangular overlay in a camera application?
You have to create your own Preview by extending the SurfaceView class.
See below link which helps you.
Custom camera android
Take FrameLayout with SurfaceView as child.and customise as per your needs
First, create a public Class that extends View. Inside its onDraw()
method, draw your rectangle. For example:
public class Box extends View {
private Paint paint = new Paint();
Box(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) { // Override the onDraw() Method
super.onDraw(canvas);
paint.setStyle(Paint.Style.STROKE);
paint.setColor(Color.GREEN);
paint.setStrokeWidth(10);
//center
int x0 = canvas.getWidth()/2;
int y0 = canvas.getHeight()/2;
int dx = canvas.getHeight()/3;
int dy = canvas.getHeight()/3;
//draw guide box
canvas.drawRect(x0-dx, y0-dy, x0+dx, y0+dy, paint);
}
}
Then, in your camera preview Activity, have an instance to your Box class:
Box box = new Box(this);
Finally:
addContentView(box, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
A green rectangle will be drawn onto your camera preview.