我有一个框架布局在xml:
<FrameLayout
android:layout_width="150px"
android:layout_height="200px"
android:id="@+id/preview">
</FrameLayout>
这个预览用于显示相机视图:
mPreview = new CameraSurfacePreview(MainActivity.this, cameraObj,...);
preview.addView(mPreview2);
....
成功显示前置摄像头的人脸。我有了面矩形的x和y坐标。如何在frameayout上显示面边界框?
谢谢。
你可以使用ShapeDrawable,并设置它的布局参数为你需要的大小和位置,并将其添加到framayout与CameraSurfacePreview。
并不是所有的困难。首先用你想要的属性创建一个ShapeDrawable。然后将其设置为标准视图对象的背景,并添加带有布局参数的视图,以根据需要调整其大小。如果你想要
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中完成所有这些。有很多关于如何做到这一点的教程