Mencetak foto

Mengambil dan berbagi foto adalah salah satu penggunaan paling populer pada perangkat seluler. Jika aplikasi Anda mengambil foto, menampilkannya, atau memungkinkan pengguna berbagi gambar, sebaiknya pertimbangkan untuk mengaktifkan pencetakan gambar tersebut di aplikasi Anda. Android Support Library menyediakan fungsi yang mudah untuk mengaktifkan pencetakan gambar menggunakan jumlah kode minimal dan sekumpulan opsi tata letak cetak yang sederhana.

Tutorial ini menunjukkan cara mencetak gambar menggunakan class PrintHelper support library v4.

Mencetak gambar

Class PrintHelper Android Support Library menyediakan cara sederhana untuk mencetak gambar. Class ini memiliki opsi tata letak tunggal, setScaleMode(), yang memungkinkan Anda mencetak dengan salah satu dari dua opsi berikut:

  • SCALE_MODE_FIT - Opsi ini menyesuaikan ukuran gambar, sehingga seluruh gambar ditampilkan dalam area halaman yang bisa dicetak.
  • SCALE_MODE_FILL - Opsi ini menskalakan gambar sehingga memenuhi seluruh area halaman yang bisa dicetak. Jika setelan ini dipilih, sebagian tepi atas dan bawah, atau kiri dan kanan gambar tidak akan dicetak. Opsi ini adalah nilai default jika mode skala tidak ditetapkan.

Kedua opsi penskalaan untuk setScaleMode() mempertahankan rasio lebar tinggi gambar yang ada tetap utuh. Contoh kode berikut menunjukkan cara membuat instance class PrintHelper, menyetel opsi penskalaan, dan memulai proses pencetakan:

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);
}

Metode ini dapat dipanggil sebagai tindakan untuk item menu. Perhatikan bahwa item menu untuk tindakan yang tidak selalu didukung (seperti pencetakan) harus ditempatkan di menu tambahan. Untuk informasi selengkapnya, lihat panduan desain Panel Tindakan.

Setelah metode printBitmap() dipanggil, aplikasi Anda tidak perlu melakukan tindakan apa pun. Antarmuka pengguna cetak Android akan muncul, sehingga pengguna dapat memilih opsi printer dan pencetakan. Selanjutnya, pengguna dapat mencetak gambar atau membatalkan tindakan. Jika pengguna memilih untuk mencetak gambar, tugas pencetakan akan dibuat dan notifikasi pencetakan muncul pada kolom sistem.

Jika ingin menyertakan konten tambahan pada cetakan selain gambar, Anda harus membuat dokumen cetak. Guna mengetahui cara membuat dokumen untuk dicetak, lihat tutorial Mencetak dokumen HTML atau Mencetak dokumen kustom.