Android 安卓:想在相机预览上加一个轮廓覆盖图吗

Android 安卓:想在相机预览上加一个轮廓覆盖图吗,android,camera,android-camera,Android,Camera,Android Camera,我想知道我如何能把一个剪影放在相机预览的上面。到目前为止,我已经完成了以下示例,它只是预览了相机 我正在尝试一个相机预览,在那里我显示了一个轮廓,这样使用该应用程序的人就可以知道应该在哪里拍照,然后点击一个按钮,拍照,当然照片中没有轮廓 如何做到这一点?我似乎找不到任何关于如何在纹理视图顶部放置覆盖的示例。使用您链接的中的示例,我们只需创建一个布局XML文件,以在框架布局中保存我们的纹理视图和覆盖图像视图。然后,我们使用此布局的资源ID调用活动的setContentView()方法,而不是示例

我想知道我如何能把一个剪影放在相机预览的上面。到目前为止,我已经完成了以下示例,它只是预览了相机

我正在尝试一个相机预览,在那里我显示了一个轮廓,这样使用该应用程序的人就可以知道应该在哪里拍照,然后点击一个按钮,拍照,当然照片中没有轮廓

如何做到这一点?我似乎找不到任何关于如何在纹理视图顶部放置覆盖的示例。

使用您链接的中的示例,我们只需创建一个布局XML文件,以在
框架布局中保存我们的
纹理视图和覆盖
图像视图
。然后,我们使用此布局的资源ID调用
活动
setContentView()
方法,而不是示例中动态创建的
TextureView

布局文件,
main.xml

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

    <TextureView android:id="@+id/texture_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <ImageView android:id="@+id/image_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#00000000"
        android:src="@drawable/ic_launcher" />

</FrameLayout>
布局中的覆盖
ImageView
使用默认启动器图标作为其源图像,因为它至少在我的IDE上具有透明度。稍后,您将用您的轮廓替换此图像。在
纹理视图
之后列出的
图像视图
将显示在其顶部,因为
视图
是按照其在布局中列出的相同顺序绘制的,第一个
视图
列在底部;i、 e.,在z轴上离您最远的位置


活动
中,我们只是将布局加载为内容
视图
,并获取在那里创建的
纹理视图
的引用。其他一切都是一样的。

A
TextureView
的行为就像一个常规的
视图
,因此您可以像将任何
视图
放在另一个
视图
上一样。比方说,我也不知道该怎么做:数据这里已经有很多示例,但是快速描述了一个可能的选项:使用
FrameLayout
作为根
视图创建一个布局XML文件。将
TextureView
列为
FrameLayout
的第一个子项,其
layout\u宽度和
layout\u高度设置为
match\u父项
。将
ImageView
列为具有相同尺寸的第二个子视图,使其
背景透明-
00000000
,并将其
src
设置为您的轮廓图像,该轮廓图像也应具有透明背景。然后在
setContentView()
调用中加载布局文件,而不仅仅是
TextureView
@MikeM。我要试一试。谢谢你。我似乎真的找不到任何成功的例子:/简直太神奇了!我已经试了几个小时来完成这项工作,我觉得我已经完成了你刚才写的,好几次了。但这奏效了!非常感谢你,伙计!祝你有美好的一天!现在,摄像机将占据整个屏幕。你知道怎么把它变小吗?我尝试添加一些东西,比如:Camera.Parameters=Camera.GetParameters();参数。设置图片大小(宽度、高度);设置参数(参数);但这似乎并不能解决问题。它始终保持相同的大小。是的,您可以更改
TextureView
的大小;实际上,父级
FrameLayout
。您可以将我的示例布局视为一种单一的
视图
,并将其放在您想要的任何其他布局中,就像将
按钮
编辑文本
添加到
活动
的布局中一样。这有意义吗?好的。很抱歉再次问你,但我对Android不是很熟悉。假设我想要一个黑色的框架,在这个框架内我想要一个TextureView(相机正在预览的图像),但是它必须比框架稍小,这样我就可以在TextureView周围看到它。在黑色框架的底部,我想要一个按钮来捕捉图像。那会是什么样子(如果你有时间:)是的。我的编辑器仍然打开着这个布局,所以这是一个快速的调整。让我知道,如果你访问它有困难。我不经常开车。
public class LiveCameraActivity extends Activity
    implements TextureView.SurfaceTextureListener {

    private Camera mCamera;
    private TextureView mTextureView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mTextureView = (TextureView) findViewById(R.id.texture_view);
        mTextureView.setSurfaceTextureListener(this);
    }

    // The TextureView.SurfaceTextureListener methods
    // are the same as shown in the example.

    ...
}