我需要在竖屏模式下调用摄像头,并将预览嵌入我的界面中。
现在的情况是预览的画面倾斜了90度,并被拉伸了。设置Activity方向没用,设置如下Camera参数也没用:    parameters.set("orientation", "portrait");
    parameters.set("rotation", 90);请问有人做过吗。

解决方案 »

  1.   

    后来我想换个思路做:预览不显示在屏幕上,然后获取PreviewCallback返回的每一祯图像,再将图片自己画到屏幕上。
    结果。。预览的SurfaceView不显示在屏幕上,PreviewCallback不返回。这个问题无论直接的间接的方式,只要能解决就行。先在此谢过啦。
      

  2.   

    正好我最近也碰到了这个问题
    解决方法:
    1,将界面强制设置为横屏
    2,camera.setDisplayOrientation(90);  (好像要2.2以上才行)希望能帮到你
      

  3.   

    首先谢谢你。
    横屏的方法会使相机预缆正常,但因为我的应用设计成竖屏的,并且拍照界面还有一些其他的组件,所以这个方法在行不通。
    camera.setDisplayOrientation(90);确实要求2.2以上。但我现在需要在1.6以上做应用。
      

  4.   

    代码写死即可<?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.innofidei.camear"
          android:versionCode="1"
          android:versionName="1.0">
        <uses-sdk android:minSdkVersion="7" />    <application android:icon="@drawable/icon" android:label="@string/app_name">
            <activity android:name=".MyCameraActivity"
               android:screenOrientation="landscape"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>    </application>
        <uses-permission android:name="android.permission.CAMERA"/>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
       
    </manifest>
      

  5.   

    布局文件指定surfaceview的大小,给surfaceview以下的组件流出空间,即可在activity界面看到你在布局文件中的其他组件了
      

  6.   

    LZ,你可以发现不管是系统的相机还是第三方的照相app都是横屏的(有竖屏的还请告知),应该是sdk的问题,你一定要竖屏拍照也可以,给你一个很挫的办法:按楼上说的,先强制设置为横屏,让预览正常,然后里面的控件都用歪的,哈哈~~你给他歪过去就可以啦,不过对于一些系统控件没用的,比如EditText等,但是ImageButton可以啊,其它的你也可以自己定义View来完成。
      

  7.   

    这个貌似没什么好办法。
    当时在2.1下开发也遇到你这样的问题,版本低了系统本身就不支持,换一个思路吧
    或者你改写android的代码