Camera.Parameters.SetRotation(Int32) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
注意事項
deprecated
カメラの向きを基準にして時計回りの回転角度を度単位で設定します。
[Android.Runtime.Register("setRotation", "(I)V", "GetSetRotation_IHandler")]
[System.Obsolete("deprecated")]
public virtual void SetRotation(int rotation);
[<Android.Runtime.Register("setRotation", "(I)V", "GetSetRotation_IHandler")>]
[<System.Obsolete("deprecated")>]
abstract member SetRotation : int -> unit
override this.SetRotation : int -> unit
パラメーター
- rotation
- Int32
カメラの向きに対する回転角度を度単位で指定します。 回転できる値は 0、90、180、または 270 のみです。
- 属性
例外
回転値が無効な場合は 。
注釈
カメラの向きを基準にして時計回りの回転角度を度単位で設定します。 これは、JPEG PictureCallbackから返される画像に影響します。 カメラ ドライバーは、画像を回転させずに EXIF ヘッダーの向きを設定できます。 または、ドライバーが画像と EXIF サムネイルを回転させる場合があります。 Jpeg 画像が回転すると、EXIF ヘッダーの向きが見つからないか、1 になります (行 #0 は上、列 #0 は左側)。
アプリケーションで、ユーザーに表示される内容の向きに合わせて画像を回転させる場合は、アプリで android.view.OrientationEventListener と android.hardware.Camera.CameraInfoを使用する必要があります。 OrientationEventListener の値は、デバイスの自然な向きを基準としています。 CameraInfo.orientation は、カメラの向きと自然なデバイスの向きの間の角度です。 2 つの合計は、背面カメラの回転角度です。 2 つの違いは、正面カメラの回転角度です。 前面カメラの JPEG 画像は、プレビュー表示のようにミラー化されないことに注意してください。
たとえば、デバイスの自然な向きが縦向きであるとします。 デバイスは時計回りに 270 度回転するため、デバイスの向きは 270 です。 背面カメラ センサーが横向きに取り付けられ、カメラ センサーの上端が自然な向きでディスプレイの右端に揃っているとします。 そのため、カメラの向きは 90 です。 回転は 0 (270 + 90) に設定する必要があります。
参照コードは次のとおりです。
public void onOrientationChanged(int orientation) {
if (orientation == ORIENTATION_UNKNOWN) return;
android.hardware.Camera.CameraInfo info =
new android.hardware.Camera.CameraInfo();
android.hardware.Camera.getCameraInfo(cameraId, info);
orientation = (orientation + 45) / 90 * 90;
int rotation = 0;
if (info.facing == CameraInfo.CAMERA_FACING_FRONT) {
rotation = (info.orientation - orientation + 360) % 360;
} else { // back-facing camera
rotation = (info.orientation + orientation) % 360;
}
mParameters.setRotation(rotation);
}
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
適用対象
こちらもご覧ください
- OrientationEventListener
- <xref:Android.Hardware.Camera.GetCameraInfo(System.Int32%2c+Android.Hardware.Camera.CameraInfo)>