добавьте вид поверхности в один из родительских макетов
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/control"
android:layout_width="match_parent"
android:layout_height="match_parent">
<SurfaceView
android:id="@+id/surface"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
Я создал поле для наложения камеры
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(2);
//center
int x0 = canvas.getWidth() / 2;
int y0 = canvas.getHeight() / 2;
int dx = (int) (canvas.getWidth() / 2.5);
int dy = (int) (canvas.getHeight() / 2.9);
//draw guide box
canvas.drawRect(x0 - dx, y0 - dy, x0 + dx, y0 + dy, paint);
}
}
Теперь добавьте этот блок в родительский макет, чтобы его нельзя былообновление моей поверхности
Box box = new Box(this);
relativeLayout = findViewById(R.id.control);
relativeLayout.addView(box, new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT));