In ảnh

Chụp và chia sẻ ảnh là một trong những cách sử dụng phổ biến nhất trên thiết bị di động. Nếu ứng dụng của bạn chụp ảnh, hiển thị ảnh hoặc cho phép người dùng chia sẻ hình ảnh, bạn nên cân nhắc việc bật tính năng in những ảnh đó trong ứng dụng của mình. Thư viện hỗ trợ Android cung cấp một chức năng thuận tiện để cho phép in hình ảnh bằng cách sử dụng số lượng mã tối thiểu và tập hợp các tuỳ chọn bố cục in đơn giản.

Bài học này sẽ hướng dẫn bạn cách in hình ảnh bằng lớp PrintHelper của thư viện hỗ trợ v4.

In hình ảnh

Lớp PrintHelper của Thư viện hỗ trợ Android cung cấp một cách đơn giản để in hình ảnh. Lớp này có một tuỳ chọn bố cục duy nhất là setScaleMode(), cho phép bạn in bằng một trong hai tuỳ chọn sau:

  • SCALE_MODE_FIT – Tuỳ chọn này xác định kích thước của hình ảnh để toàn bộ hình ảnh đều xuất hiện trong vùng có thể in được trên trang.
  • SCALE_MODE_FILL – Tuỳ chọn này điều chỉnh tỷ lệ hình ảnh sao cho lấp đầy toàn bộ vùng có thể in trên trang. Khi bạn chọn chế độ cài đặt này, một số phần trên cùng và dưới cùng, hoặc cạnh trái và phải của hình ảnh sẽ không được in. Tuỳ chọn này là giá trị mặc định nếu bạn không đặt chế độ điều chỉnh theo tỷ lệ.

Cả hai tuỳ chọn điều chỉnh tỷ lệ cho setScaleMode() đều giữ nguyên tỷ lệ khung hình hiện tại của hình ảnh. Mã ví dụ sau đây cho biết cách tạo một thực thể của lớp PrintHelper, đặt tuỳ chọn điều chỉnh theo tỷ lệ và bắt đầu quá trình in:

Kotlin

private fun doPhotoPrint() {
    activity?.also { context ->
        PrintHelper(context).apply {
            scaleMode = PrintHelper.SCALE_MODE_FIT
        }.also { printHelper ->
            val bitmap = BitmapFactory.decodeResource(resources, R.drawable.droids)
            printHelper.printBitmap("droids.jpg - test print", bitmap)
        }
    }
}

Java

private void doPhotoPrint() {
    PrintHelper photoPrinter = new PrintHelper(getActivity());
    photoPrinter.setScaleMode(PrintHelper.SCALE_MODE_FIT);
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
            R.drawable.droids);
    photoPrinter.printBitmap("droids.jpg - test print", bitmap);
}

Phương thức này có thể được gọi dưới dạng thao tác cho một mục trong trình đơn. Xin lưu ý rằng các mục trong trình đơn cho các thao tác không phải lúc nào cũng được hỗ trợ (chẳng hạn như in) phải được đặt trong trình đơn mục bổ sung. Để biết thêm thông tin, hãy xem hướng dẫn thiết kế Thanh thao tác.

Sau khi phương thức printBitmap() được gọi, bạn không cần làm gì thêm. Giao diện người dùng in trên Android xuất hiện, cho phép người dùng chọn máy in và các tuỳ chọn in. Sau đó, người dùng có thể in hình ảnh đó hoặc huỷ thao tác. Nếu người dùng chọn in hình ảnh, thì một lệnh in sẽ được tạo và thông báo in xuất hiện trong thanh hệ thống.

Nếu muốn đưa thêm nội dung khác vào bản in của mình thay vì chỉ hình ảnh, bạn phải tạo tài liệu in. Để biết thông tin về cách tạo tài liệu để in, hãy xem các bài học In tài liệu HTML hoặc In tài liệu tuỳ chỉnh.