Theo trang web của nhà phát triển Android:Android Máy ảnh Preview Rotation
sau android 2.2 có chức năng
"setDisplayOrientation"
để điều chỉnh xoay camera xem trước.
Và cũng theo Trang web dành cho nhà phát triển Android, chúng tôi có thể tìm thấy mã nguồn sau đây.
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 ;
}
Tuy nhiên, tôi không thể làm việc với một số loại Thiết bị. Giống như Samsung Galaxy Y S5360, S5660, YP-G1, YP-G70, v.v.
Chỉ một phần của máy không hoạt động, Galaxy Nexus, SII hoặc một số thiết bị cao cấp, hoạt động tốt.
Không setDisplayOrientation không hỗ trợ hoặc phần mềm thiết bị chưa sẵn sàng?
PS. Tất cả các thiết bị đều là Android 2.3.1 trở lên.
Trợ giúp.
Tôi đang gặp phải vấn đề tương tự trên Galaxy Y. Bạn có tìm thấy điều gì đó không? Tôi muốn biết ít nhất nếu setDisplayOrientation thành công, để khóa nó vào cảnh quan nếu không. –
cuối cùng, không được giải quyết. chỉ làm cho hoạt động bề mặt máy ảnh thành chế độ xem ngang. –
Có ai có danh sách các thiết bị mà lỗi này xảy ra không? Mọi trợ giúp sẽ được đánh giá cao. – patrickfdsouza