Android : 在相机预览中显示前景(和视图)以使旧相机看起来像背面

Android : display foreground (and views) in a camera preview in order to make an old camera back look

我在使用相机预览时遇到了一些问题(在 FrameLayout 中)。 我想实现这样的目标:

https://lh4.ggpht.com/aFPHmlYNaSAAJV2er2inD9dlXS61Sj-V1qyYeCpfgMCPY18kgdQEdIOyWkaXOlWeAkM=h900-rw or this : https://lh4.ggpht.com/_OkN-O2mb3s4VO6QoSj15cTdzTBic_Ji8-ZGg16PmvfFUNWpQHfaZuN6ofwPWOHhr34=h900-rw

但到目前为止,我所能做的就是: - 在 FrameLayout 中进行全屏预览 - 一个微小的预览错位(我希望它水平居中并在顶部 40 dp 处)

到目前为止,这是我的布局:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/background_app_photo_transparent" tools:context="jmf.net.testsapp.CameraActivity" > <FrameLayout android:layout_width="320dp" android:layout_height="240dp" android:layout_gravity="center_horizontal" android:layout_marginTop="40dp" android:id="@+id/master_layout" /> </FrameLayout>

第一个 FrameLayout 是我放置九个可绘制补丁的地方,它必须恢复一些相机预览。 第二个 FrameLayout (id/master_layout) 是我创建 SurfaceView 以显示相机预览的那个。

但是当我尝试这个时,我在左下角看到了相机预览。

所以我想我开始不好。

这是我的问题:如何管理布局和相机预览才能获得如下图所示的内容?

好的,我找到办法了。

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


<ImageView
    android:layout_width="wrap_content"
    android:layout_height="40dp"
    android:id="@+id/imageView2"
    android:background="@drawable/slice_0_0"
    android:layout_gravity="fill"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_above="@+id/imageView5"
    android:layout_toLeftOf="@+id/imageView3"
    android:layout_toStartOf="@+id/imageView3" />

<ImageView
    android:layout_width="fill_parent"
    android:layout_height="40dp"
    android:id="@+id/imageView3"
    android:background="@drawable/slice_0_1"
    android:layout_gravity="fill"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@+id/imageView6"
    android:layout_toRightOf="@+id/imageView5"
    android:layout_toEndOf="@+id/imageView5" />

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="40dp"
    android:id="@+id/imageView4"
    android:background="@drawable/slice_0_2"
    android:layout_gravity="fill"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:layout_above="@+id/imageView6"
    android:layout_toRightOf="@+id/imageView3"
    android:layout_toEndOf="@+id/imageView3" />


<ImageView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/imageView5"
    android:background="@drawable/slice_1_0"
    android:layout_gravity="fill"
    android:layout_below="@+id/imageView3"
    android:layout_toLeftOf="@+id/master_layout"
    android:layout_toStartOf="@+id/master_layout"
    android:layout_alignBottom="@+id/master_layout" />

<FrameLayout
    android:layout_width="320dp"
    android:layout_height="240dp"
    android:layout_gravity="center_horizontal"
    android:id="@+id/master_layout"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="40dp"
    />

<ImageView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/imageView6"
    android:background="@drawable/slice_1_2"
    android:layout_gravity="fill"
    android:layout_toRightOf="@+id/master_layout"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/imageView3"
    android:layout_alignBottom="@+id/master_layout" />


<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imageView7"
    android:background="@drawable/slice_2_0"
    android:layout_gravity="fill"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignBottom="@+id/imageView9"
    android:layout_toLeftOf="@+id/imageView3"
    android:layout_toStartOf="@+id/imageView3"
    android:layout_below="@+id/imageView5" />

<ImageView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/imageView8"
    android:background="@drawable/slice_2_1"
    android:layout_gravity="fill"
    android:layout_toLeftOf="@+id/imageView6"
    android:layout_below="@+id/master_layout"
    android:layout_toRightOf="@+id/imageView5"
    android:layout_toEndOf="@+id/imageView5" />

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imageView9"
    android:background="@drawable/slice_2_2"
    android:layout_gravity="fill"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/imageView6"
    android:layout_alignLeft="@+id/imageView6"
    android:layout_alignStart="@+id/imageView6" />

</RelativeLayout>

抱歉打扰了。