2012-03-25 73 views
-1

我想学习从这篇文章的增强现实基础: http://www.devx.com/wireless/Article/42482/0/page/2Android相机定位

它运行时,相机采取了相反的方向。 我的问题是如何使用相机获得固定和正常的视图。这是CustomCameraView类:

package com.syariati.camera; 

import android.content.Context; 
import android.graphics.PixelFormat; 
import android.hardware.Camera; 
import android.hardware.Camera.Parameters; 
import android.view.SurfaceHolder; 
import android.view.SurfaceView; 

public class CustomCameraView extends SurfaceView { 
    Camera camera; 
    SurfaceHolder surfaceHolder; 

    public CustomCameraView(Context context){ 
     super(context); 
     surfaceHolder = this.getHolder(); 
     surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 
     surfaceHolder.addCallback(surfaceHolderListener); 
    } 

    SurfaceHolder.Callback surfaceHolderListener = new SurfaceHolder.Callback() { 

     @Override 
     public void surfaceDestroyed(SurfaceHolder holder) { 
      // TODO Auto-generated method stub 
      camera.stopPreview(); 
      camera.release(); 
     } 

     @Override 
     public void surfaceCreated(SurfaceHolder holder) { 
      // TODO Auto-generated method stub 
      camera = Camera.open(); 
      try{ 
       camera.setPreviewDisplay(surfaceHolder); 
      } 
      catch(Exception e){ 
       e.printStackTrace(); 
      } 
     } 

     @Override 
     public void surfaceChanged(SurfaceHolder holder, int format, int width, 
       int height) { 
      // TODO Auto-generated method stub 
      Parameters params = camera.getParameters(); 
      params.setPictureFormat(PixelFormat.JPEG); 
      camera.setParameters(params); 
      camera.startPreview(); 
     } 
    }; 
} 

我应该在params上添加另一种方法吗?

对不起,我的英语不好。谢谢。

这是如何解决问题的。

地址:

camera.setDisplayOrientation(90); 

Android - Camera preview is sideways

回答

0

转到您的应用程序AndroidManifest.xml文件,然后按照

Application tab -> select CustomCameraView activity -> 
attributes for CustomCameraView activity -> screen orientation -> select portrait. 

并运行它 - 恩乔伊...

+0

当我添加画像它没有工作。然而,景观工作正常,但随着屏幕方向的变化而改变。 – farissyariati 2012-03-25 14:03:46

3

设定方向根据你的要求程度,因为我有用户90 前置摄像头和270度后置摄像头:

Camera.Parameters params = camera.getParameters(); 
params.set("rotation", 90); 
camera.setParameters(params);