2

我使用了surfaceview(Android 2.2及更高版本),如果我在AndroidManifest.xml中制作以下代码,结果会很好

   <activity
        android:name="com.custom.camera.CustomCamera"
        android:screenOrientation="landscape" >
    </activity>

但是如果我使用下面的代码,相机视图不会显示

     <activity
        android:name="com.custom.camera.CustomCamera"
        android:screenOrientation="portrait" >
    </activity>

具有横向模式的图片可以正常工作

在此处输入图像描述

如果我在纵向模式下使用相同的图片将变为

在此处输入图像描述

谁能告诉我为什么会这样

xml文件是

     <?xml version="1.0" encoding="utf-8"?>

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

<FrameLayout
    android:id="@+id/overlay_container"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:visibility="visible" >

    <Button
        android:id="@+id/mTakePicture"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Take Picture" />

    <ImageView
        android:id="@+id/mFrontView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:padding="5dp" />
</FrameLayout>

         LOGCAT ISSUE

如果它处于纵向模式,我会收到如下错误

       12-16 15:43:09.297: E/Camera(7104): Error 1
       12-16 15:43:15.297: E/Camera(7104): Error 1
       12-16 15:43:21.307: E/Camera(7104): Error 1
       12-16 15:43:27.337: E/Camera(7104): Error 1

在风景中它工作正常

4

1 回答 1

0
  1)You have to make your own custom view with all your logics and design in a separate class which extends View

  2) The SurfaceView must be placed inside a Frame or RelativeLayout 

  3) Finally your custom view must be specified in your layout xml as a child  

这将需要一些时间,但您有很多示例和教程

于 2012-12-16T04:07:42.327 回答