要件は、カメラをポートレート モードで表示することです。
カメラ ビューは、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 にする必要があるすべてのデバイスを見つける方法は? そして、それを検出する方法は?