Trước tiên, vui lòng không sao chép hoàn toàn ứng dụng của chúng tôi. Trong trường hợp này, bạn sẽ cần phải viết ứng dụng của riêng bạn anyway; nó chắc chắn không đơn giản như thay đổi hướng bố trí. Không chỉ giao diện người dùng không được viết cho ảnh chân dung, nhưng không phải là mã ứng dụng.
Nếu bạn chỉ muốn sử dụng chỉ chế độ dọc cố định thì điều này không quá khó. Hỗ trợ đầy đủ tất cả 4 phép quay, với máy ảnh trước/sau, khó có được quyền. Nhưng không chỉ 1 trường hợp.
Trước tiên, bạn cần thiết kế giao diện người dùng chế độ dọc. (Đừng sao chép thiết kế đường đỏ.)
Mã ứng dụng thực tế không quan tâm đến định hướng cho mã QR. Bạn không phải làm gì cả. Nhưng bạn cần phải thực hiện thay đổi để hiển thị màn hình ngay.
Bạn sẽ cần truy vấn Camera.getOrientation()
để phát hiện cách máy ảnh được lắp. Thông thường nó là như vậy mà "lên" là quyền của bạn, và tôi nghĩ rằng chỉ là về mọi thiết bị hoạt động theo cách này cho khả năng tương thích. Nhưng về mặt kỹ thuật, bạn cần phải biết bạn biết xoay vòng hình ảnh xem trước bao nhiêu.
Sau đó, bạn sử dụng Camera.setDisplayOrientation()
để cho biết mức độ xoay hình ảnh để xoay hình ảnh chính xác cho màn hình chế độ dọc. Điều này thường là "90".
Cuối cùng, bạn cần phải chọn kích thước xem trước với Camera.Parameters.setPreviewSize()
nhưng có thể sẽ cần phải lật các giá trị bạn đã chọn (480x800 so với 800x480) vì bạn đang ở chế độ dọc.
Nguồn
2013-03-23 23:14:59
Tinh chỉnh rất đơn giản, mặc dù cần một chút thay đổi trên nhiều tệp. Ở đây tôi đã đặt một giải pháp hoàn chỉnh cho câu hỏi này: http://stackoverflow.com/questions/16252791/how-to-show-zxing-camera-in-portrait-mode-android/16252917#16252917 – Roylee
@Roylee: cảm ơn, mã của bạn cũng chạy tốt .. –