2012-03-25 72 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);