我需要一种“裁剪”相机预览的方法,以便只展示其中的一部分。 例如: 假设我的相机支持1920X1080。现在,我的屏幕上都有一个SurfaceView(因为我的屏幕也是1920X1080)。我想保持预览滚动,但“隐藏”屏幕的左侧,所以,如果我直接看相机,那么屏幕将被拆分。一半会显示我脸的右侧,另一半则不会显示任何内容。
我该怎么做? 可以用Camera api完成吗?和Camera2 api?
提前致谢!
答案 0 :(得分:0)
您可以为其他SurfaceView
设置View
的位置,即您可以将元素的开头设置为超出屏幕的开头。
答案 1 :(得分:0)
将曲面视图放在填充屏幕的相对布局中,并在相同的相对布局中添加一个新视图,其中不透明背景直到曲面视图。设置最后一个视图以填充父级的高度以及您想要的宽度。
这是一个代码示例,我将预览拆分为红色视图和透明视图
<RelativeLayout
android:id="@+id/preview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#00f" >
<SurfaceView
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:alpha="1"
android:orientation="horizontal" >
<View
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="0.5"
android:background="#F00"
android:orientation="vertical"/>
<View
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="0.5"
android:background="@null" />
</LinearLayout>
</RelativeLayout>