Camera.SetDisplayOrientation(Int32) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Perhatian
deprecated
Atur rotasi searah jajaran jajaran jam tampilan pratinjau dalam derajat.
[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
Parameter
- degrees
- Int32
sudut gambar akan diputar searah jarum jam. Nilai yang valid adalah 0, 90, 180, dan 270.
- Atribut
Keterangan
Atur rotasi searah jajaran jajaran jam tampilan pratinjau dalam derajat. Ini memengaruhi bingkai pratinjau dan gambar yang ditampilkan setelah rekam jepret. Metode ini berguna untuk aplikasi mode potret. Perhatikan bahwa tampilan pratinjau kamera depan dibalik secara horizontal sebelum rotasi, yaitu gambar tercermin di sepanjang sumbu vertikal pusat sensor kamera. Sehingga pengguna dapat melihat diri mereka sebagai melihat ke cermin.
Ini tidak memengaruhi urutan array byte yang diteruskan dalam PreviewCallback#onPreviewFrame
, gambar JPEG, atau video yang direkam. Metode ini tidak diizinkan untuk dipanggil selama pratinjau.
Jika Anda ingin membuat gambar kamera ditampilkan dalam orientasi yang sama dengan tampilan, Anda dapat menggunakan kode berikut.
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);
}
Mulai dari API level 14, metode ini dapat dipanggil saat pratinjau aktif.
<b>Catatan: </b>Sebelum API level 24, nilai default untuk orientasi adalah 0. Mulai dari API level 24, orientasi defaultnya adalah aplikasi dalam mode forced-landscape akan memiliki orientasi pratinjau yang benar, yang mungkin merupakan default 0 atau 180. Aplikasi yang beroperasi dalam mode potret atau memungkinkan perubahan orientasi masih harus memanggil metode ini setelah setiap perubahan orientasi untuk memastikan tampilan pratinjau yang benar dalam semua kasus.
Dokumentasi Java untuk android.hardware.Camera.setDisplayOrientation(int)
.
Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.