2013-04-27 29 views
0

我对Java很陌生,我正在尝试创建一个应用程序,您可以在其中使用陀螺仪在屏幕上移动图像,以便它看起来像是从相机中粘贴了一个图像。图像完成后,我就像它应该移动一样。现在我只需要将相机作为xml文件的背景。有没有简单的方法来做到这一点?Java的android - 我该怎么设置活动的背景到相机预览?

回答

0

使用FrameLayout作为活动的父级布局。然后放置一个Surfaceview来显示一个自定义相机。然后,您可以在其上放置任何布局以显示其他组件。这将看起来像背景中的相机。有关将相机放置在SufaceView上的更多信息,请检查this

0

本质上,您希望使相机预览XML文件中第一个Layout对象的第一个元素。

根据您想要布置其他控件的方式,您可以使用任何布局类型。我在这里使用了一个RelativeLayout作为我的布局的基础。带有'camera_preview'标识的FrameLayout被用作相机预览类的容器。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal" 
    tools:context=".YourMainActivity" > 

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

    <!-- ... other display controls ... --> 

</RelativeLayout> 

然后,在YourMainActivity的onCreate()创建您的摄像头预览类的新实例,并将其添加到camera_preview容器布局:

private static YourCameraPreviewClass mPreview; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    // ... get camera instance ... 

    mPreview = new YourCameraPreviewClass(this, cameraInstance); 
    FrameLayout previewFrameLayout = (FrameLayout) findViewById(R.id.camera_preview); 
    previewFrameLayout.addView(mPreview); 

    Log.d(LOGTAG, "Camera preview background set! (:"); 

} 
+0

这是否回答你的问题? – reor 2013-05-01 04:23:31