我遇到了一个问题一个在人像模式下预览相机的问题。我已经阅读了关于它的各种文章,我已经解决了下面的代码:
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版本会有这样的问题,
这个问题有更好的解决办法吗?非常感谢您的时间!
要设置显示方向请查看官方文档,不要在那里硬编码90度