Печать фотографий

Съемка и обмен фотографиями — одно из самых популярных способов использования мобильных устройств. Если ваше приложение снимает фотографии, отображает их или позволяет пользователям обмениваться изображениями, вам следует рассмотреть возможность включения печати этих изображений в вашем приложении. Библиотека поддержки Android предоставляет удобную функцию, позволяющую печатать изображения с использованием минимального количества кода и простого набора параметров макета печати.

В этом уроке показано, как распечатать изображение с помощью класса PrintHelper библиотеки поддержки версии 4.

Распечатать изображение

Класс PrintHelper библиотеки поддержки Android предоставляет простой способ печати изображений. Класс имеет единственный параметр макета setScaleMode() , который позволяет печатать с одним из двух вариантов:

  • SCALE_MODE_FIT — этот параметр изменяет размер изображения так, чтобы все изображение показывалось в пределах печатаемой области страницы.
  • SCALE_MODE_FILL — этот параметр масштабирует изображение так, чтобы оно заполняло всю печатаемую область страницы. Выбор этого параметра означает, что некоторая часть верхнего и нижнего или левого и правого краев изображения не печатается. Этот параметр является значением по умолчанию, если вы не установили режим масштабирования.

Оба параметра масштабирования для setScaleMode() сохраняют существующее соотношение сторон изображения. В следующем примере кода показано, как создать экземпляр класса PrintHelper , установить параметр масштабирования и запустить процесс печати:

Котлин

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

Ява

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

Этот метод можно вызвать как действие для пункта меню. Обратите внимание, что элементы меню для действий, которые не всегда поддерживаются (например, печать), следует размещать в дополнительном меню. Дополнительные сведения см. в руководстве по проектированию панели действий .

После вызова метода printBitmap() никаких дальнейших действий со стороны вашего приложения не требуется. Появится пользовательский интерфейс печати Android, позволяющий пользователю выбрать принтер и параметры печати. Затем пользователь может распечатать изображение или отменить действие. Если пользователь решает распечатать изображение, создается задание на печать, и на системной панели появляется уведомление о печати.

Если вы хотите включить в распечатки дополнительный контент, помимо изображения, вам необходимо создать документ для печати. Информацию о создании документов для печати см. в уроках «Печать HTML-документа» или «Печать пользовательского документа» .