要求是以纵向模式显示相机。
相机视图在所有其他设备(如 Nexus 4、Nexus 5、Samsung S3、Samsung S4 等)中都能正常显示。
在 NEXUS 6 中,相机显示为倒置。
这是我设置相机参数的方式 -
private void setCameraParameters() {
try {
Parameters parameters = mCamera.getParameters();
Camera.CameraInfo camInfo = new Camera.CameraInfo();
Camera.getCameraInfo(mCameraId, camInfo);
int cameraRotationOffset = camInfo.orientation;
System.out.println("Offset :" + cameraRotationOffset);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
parameters.set("orientation", "portrait");
mCamera.setDisplayOrientation(90);
Camera.Size size = getBestCameraSize(90,getWidth(),getHeight(),parameters);
if(size==null) {
size = getOptimalPreviewSize(90, getWidth(), getHeight(), parameters);
}
parameters.setPreviewSize(size.width,size.height);
mCamera.setParameters(parameters);
}
} catch (Exception e) {
e.printStackTrace();
}
}
经过我的实验,我了解到将显示方向设置为 270 度适用于 Nexus 6。
查询 - 如何找出所有设备需要显示方向为 90 以及所有设备需要显示方向为 270 的情况?以及如何检测它?