上面有透明图像的相机预览

时间:2011-05-30 22:13:04

标签: android camera preview

我想在Camera SurfaceView \ preview上看到一个图像。 我怎么做?有什么例子吗?

1 个答案:

答案 0 :(得分:13)

可以在ZXing库,Barcode Scanner应用程序中找到一个很好的示例。

他们所做的是他们使用FrameLayout SurfaceView及其自定义ViewfinderView,以便SurfaceViewViewfinderView覆盖全屏:

<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_parentlayout_height的{​​{1}}值。

然后他们用ViewfinderView.onDraw()方法绘制自定义内容,只是在相机预览显示的内容之上。

如果您不想绘制任何内容,只是使用预定义图片,请使用layout_width代替ImageView。您可以考虑调用ViewfinderView方法使图像透明(如果drawable本身不是透明的)。


以下是Barcode Scanner的截图:

enter image description here