2011-06-09 38 views
1

我对表面创建的代码是:当我启动相机,然后它的表面都对面

public void surfaceCreated(SurfaceHolder arg0){ 
     // TODO Auto-generated method stub 


     if (camera == null) { 
      try { 
       Log.e("camera starting","camera starting"); 
       camera = android.hardware.Camera.open(); 
       Camera.Parameters parameters = camera.getParameters(); 
       //final List<String> coloreffects = camera.getParameters().getSupportedColorEffects(); 
       mParameters.set("rotation","ANTIBANDING_60HZ"); 
       parameters.setFocusMode(Camera.Parameters.EFFECT_SEPIA); 
       parameters.getFocusMode(); 

       mParameters.set("rotation",90); 
       parameters.setFocusMode("android.intent.extra.focus"); 
       Intent intent = new Intent("android.intent.extra.focus"); 
       startActivityForResult(intent, 0); 

       camera.setParameters(parameters); 
       Log.e("camera running","camera runnng"); 

      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      } 

回答

0

这个旋转发生的原因是,相机假定方向是 水平或景观。纠正旋转的最简单方法是让我们的活动 以横向模式显示。

添加android:screenOrientation="landscape"你的活动在清单

或添加到您的onCreate()

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
+0

它不工作。 – 2011-12-29 16:01:30

+0

Csabi 2012-02-06 13:51:57

+0

您需要将最后一行添加到android:configChanges =“keyboardHidden | orientation”> – Csabi 2012-02-06 13:52:23

3

使用此代码。并改变avd版本2.2

 @Override 
     public void surfaceCreated(SurfaceHolder holder) { 
     camera = Camera.open(); 

     try { 
       camera.setPreviewDisplay(holder); 
       Camera.Parameters parameters = camera.getParameters(); 
       parameters.setPictureFormat(PixelFormat.JPEG); 
       parameters.set("orientation", "portrait"); 
       camera.setDisplayOrientation(90); 
       parameters.setRotation(90); 
       camera.setParameters(parameters); 
      } 
      catch (IOException exception) { 
       camera.release(); 
      } 
     } 
+0

可爱的答案,保存了一天 – 2013-10-14 16:22:28

相关问题