如何使用带有图像的相机?

How to use the camera with images?

我想制作一个包含图像和背景的应用程序,您可以使用设备相机。我知道如何启动相机,但不知道如何将图像向前移动。这个应用程序就是一个例子:

https://play.google.com/store/apps/details?id=com.kat.police.photosuit.montage

有人知道解释如何操作的教程或一些代码吗?

我找了没找到,可能是我英文不太好吧。提前致谢

我认为您的解决方案不应该是重叠图像。我认为您正在寻找的东西更复杂。你应该拥有两张图片,然后编写一个算法将它们混合起来,并在你的 imageView 上只显示一张图片。

请检查这个例子:

http://examples.javacodegeeks.com/android/core/ui/surfaceview/android-surfaceview-example/

并使用此布局activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.javacodegeeks.androidsurfaceviewexample.AndroidSurfaceviewExample" >

    <SurfaceView
        android:id="@+id/surfaceView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/police"
        android:layout_above="@id/capture"/>

    <LinearLayout
        android:id="@+id/capture"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:background="@android:color/white"
        android:gravity="center"
        android:layout_alignParentBottom="true"
        android:onClick="captureImage"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:padding="10dp"
            android:text="Capture"
            android:textAppearance="?android:attr/textAppearanceLarge" />
    </LinearLayout>

</RelativeLayout>

在您的 surfaceCreated 方法中,您需要执行如下操作:

Camera.Parameters parameters = camera.getParameters();
List<Camera.Size> previewSizes = parameters.getPreviewSizes();

// You need to choose the most appropriate previewSize for your app
// Example Camera.Size previewSize = previewSizes.get(0);
Camera.Size previewSize = // .... select one of previewSizes here

parameters.setPreviewSize(previewSize.width, previewSize.height);
camera.setParameters(parameters);
camera.startPreview();