好吧,您可以使用 ShapeDrawable,并将其布局参数设置为您需要的大小和位置,并将其与您的 CameraSurfacePreview 一起添加到 FrameLayout。
这并不难。首先使用您想要的属性创建一个 ShapeDrawable。然后将其设置为标准 View 对象的背景,并使用布局参数添加视图以调整其大小。所以如果你想要
ShapeDrawable sd = new ShapeDrawable(new RectShape());
sd.getPaint().setColor(0xFFFFFFFF);
sd.getPaint().setStyle(Paint.Style.STROKE);
sd.getPaint().setStrokeWidth(1);
View shapeView = new View(context);
shapeView.setBackground(sd);
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(100, 100);
params.setMargins(left, top, 0, 0);
frameLayout.addView(shapeView, params);
在这种特殊情况下,我将其设置为 100x100 视图,因此形状将自动调整为视图大小。我已经将它设置为它与顶角的偏移量为 left 和 top。
有很多方法可以做到这一点,但这似乎是最简单的。当然,您也可以在 XML 中完成所有这些工作。有很多关于如何做到这一点的教程。