Camera.SetDisplayOrientation(Int32) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
警告
deprecated
設定預覽顯示以度為單位的順時針旋轉。
[Android.Runtime.Register("setDisplayOrientation", "(I)V", "")]
[System.Obsolete("deprecated")]
public void SetDisplayOrientation (int degrees);
[<Android.Runtime.Register("setDisplayOrientation", "(I)V", "")>]
[<System.Obsolete("deprecated")>]
member this.SetDisplayOrientation : int -> unit
參數
- degrees
- Int32
圖片會順時針旋轉的角度。 有效值為 0、90、180 和 270。
- 屬性
備註
設定預覽顯示以度為單位的順時針旋轉。 這會影響快照集之後顯示的預覽畫面和圖片。 此方法適用於直向模式應用程式。 請注意,在旋轉之前,正面相機的預覽顯示會水準翻轉,也就是說,影像會沿著相機感測器的中央垂直軸反射。 因此,使用者可以看到自己看著鏡子。
這不會影響傳入 PreviewCallback#onPreviewFrame
、JPEG 圖片或錄製影片的位元組順序。 不允許在預覽期間呼叫這個方法。
如果您想要讓相機影像以與顯示器相同的方向顯示,您可以使用下列程序代碼。
public static void setCameraDisplayOrientation(Activity activity,
int cameraId, android.hardware.Camera camera) {
android.hardware.Camera.CameraInfo info =
new android.hardware.Camera.CameraInfo();
android.hardware.Camera.getCameraInfo(cameraId, info);
int rotation = activity.getWindowManager().getDefaultDisplay()
.getRotation();
int degrees = 0;
switch (rotation) {
case Surface.ROTATION_0: degrees = 0; break;
case Surface.ROTATION_90: degrees = 90; break;
case Surface.ROTATION_180: degrees = 180; break;
case Surface.ROTATION_270: degrees = 270; break;
}
int result;
if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
result = (info.orientation + degrees) % 360;
result = (360 - result) % 360; // compensate the mirror
} else { // back-facing
result = (info.orientation - degrees + 360) % 360;
}
camera.setDisplayOrientation(result);
}
從 API 層級 14 開始,當預覽作用中時,可以呼叫這個方法。
<b>注意: </b>在 API 層級 24 之前,方向的預設值為 0。 從 API 層級 24 開始,預設方向會讓處於強制橫向模式的應用程式具有正確的預覽方向,這可能是預設值 0 或 180。 以直向模式運作或允許變更方向的應用程式,在每次方向變更之後仍必須呼叫此方法,以確保在所有情況下都能正確顯示預覽。
的 android.hardware.Camera.setDisplayOrientation(int)
Java 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。