我想在Camera SurfaceView \ preview上看到一个图像。 我怎么做?有什么例子吗?
答案 0 :(得分:13)
可以在ZXing库,Barcode Scanner应用程序中找到一个很好的示例。
他们所做的是他们使用FrameLayout
SurfaceView
及其自定义ViewfinderView
,以便SurfaceView
和ViewfinderView
覆盖全屏:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<SurfaceView android:id="@+id/preview_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerInParent="true"/>
<com.google.zxing.client.android.ViewfinderView
android:id="@+id/viewfinder_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/transparent"/>
</FrameLayout>
请注意两个视图中fill_parent
和layout_height
的{{1}}值。
然后他们用ViewfinderView.onDraw()
方法绘制自定义内容,只是在相机预览显示的内容之上。
如果您不想绘制任何内容,只是使用预定义图片,请使用layout_width
代替ImageView
。您可以考虑调用ViewfinderView
方法使图像透明(如果drawable本身不是透明的)。
以下是Barcode Scanner的截图: