创建点击以通过CameraPreview捕获透明的ImageButton

时间:2014-02-25 13:02:05

标签: android android-camera imagebutton

我的头撞了一会儿。基本上我的应用程序显示填充屏幕的相机预览,当用户点击预览时它会捕获图像(尝试通过透明图像按钮执行此操作。在屏幕的底部我想要另一个图像按钮,这次它将停止应用程序正在进行的录制。

这是我的活动布局

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <FrameLayout
            android:id="@+id/camera_preview"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
        </FrameLayout>

        <ImageButton
            android:id="@+id/button_capture"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@null"
            android:contentDescription="@string/capture"
            android:src="@null" />
    </FrameLayout>

    <ImageButton
        android:id="@+id/stopRecording"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_gravity="bottom|center"
        android:layout_marginBottom="50dp"
        android:background="@null"
        android:contentDescription="@string/stopRec"
        android:onClick="moveToUpload"
        android:scaleType="fitCenter"
        android:src="@drawable/rec_gray" />

</FrameLayout>

我试图使用FrameLayouts,因为它们允许覆盖。

唯一不可改变的事情是CameraPreview是FrameLayout。

任何帮助都赞赏纠正此代码,

感谢。

2 个答案:

答案 0 :(得分:1)

如果要在预览中添加按钮,请使用单独的布局并将它们合并到主布局

<merge xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >


    <include
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        layout="@layout/layout2" />

    <include
         android:layout_width="fill_parent"
         android:layout_height="fill_parent"
         layout="@layout/layout1" />
</merge>

一个布局将仅包含预览,第二个布局将包含按钮,合并后您将在预览中放置按钮。

如果你想使用透明按钮,请使用带有alpha chanel的png文件,这样可以解决问题:)

答案 1 :(得分:0)

你需要像这样在你的xml中添加Cameraview

<FrameLayout 
  android:id="@+id/mySurfaceView"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">

  <com.cam.CapturePreview 
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">
  </com.cam.CapturePreview>

  </FrameLayout>

这也可以帮助你.. https://stackoverflow.com/a/7528543/472336