2011-10-19 19 views
4

我面临一个问题,试图在纵向模式下进行相机预览。我读过关于它的各种文章和我已经解决了具有下面的代码是:安卓相机setDisplayOrientation:奇怪的星系标签行为

Display display = ((CaptureActivity)context).getWindowManager().getDefaultDisplay(); 
int width = display.getWidth(); 
int height = display.getHeight(); 

if (Integer.parseInt(Build.VERSION.SDK) >= 8) { 
    setDisplayOrientation(camera, 90); 
}else{ 
    Camera.Parameters parameters = camera.getParameters(); 
    parameters.set("orientation", "portrait"); 
    camera.setParameters(parameters); 
} 

其中作为setDisplayOrientation()的定义是:

protected void setDisplayOrientation(Camera camera, int angle) { 
    Method downPolymorphic; 
    try { 
     downPolymorphic = camera.getClass().getMethod(
       "setDisplayOrientation", new Class[] { int.class }); 
     if (downPolymorphic != null) 
      downPolymorphic.invoke(camera, new Object[] { angle }); 
    } catch (Exception e1) { 
    } 
} 

现在,我想这个代码到的Galaxy Tab,它失败。我解决了它(尝试和错误的做法),使用下面的代码:

if (height == 1024 && width == 600) { 
    Camera.Parameters parameters = camera.getParameters(); 
    parameters.set("orientation", "portrait"); 
    parameters.setRotation(90); 
    camera.setParameters(parameters); 
} 

现在我的两个问题是:

1)为什么有这样的问题,而Galaxy Tab的具有2.2版本,并

2)有没有更好的解决方案来解决这个问题?

非常感谢您的时间!

+0

你检查了这个解决方案:http://stackoverflow.com/questions/3841122/android-camera-preview-is-sideways/5110406#5110406 –

+0

Yeap,没有运气......非常感谢! –

+0

@DimitrisMakris你有没有得到任何解决方案。请!分享,我面对同一个? – swiftBoy

回答

0

设置显示方向检查官方docs,不只是硬编码90度那里。