Съемка и обмен фотографиями — одно из самых популярных способов использования мобильных устройств. Если ваше приложение снимает фотографии, отображает их или позволяет пользователям обмениваться изображениями, вам следует рассмотреть возможность включения печати этих изображений в вашем приложении. Библиотека поддержки 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-документа» или «Печать пользовательского документа» .