Печать фотографий
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Съемка и обмен фотографиями — одно из самых популярных способов использования мобильных устройств. Если ваше приложение снимает фотографии, отображает их или позволяет пользователям обмениваться изображениями, вам следует рассмотреть возможность включения печати этих изображений в вашем приложении. Библиотека поддержки 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-документа» или «Печать пользовательского документа» .
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-29 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-07-29 UTC."],[],[],null,["# Printing photos\n\nTaking and sharing photos is one of the most popular uses for mobile devices. If your application\ntakes photos, displays them, or allows users to share images, you should consider enabling printing\nof those images in your application. The [Android Support Library](/tools/support-library) provides a convenient function for enabling image printing using a\nminimal amount of code and simple set of print layout options.\n\nThis lesson shows you how to print an image using the v4 support library [PrintHelper](/reference/androidx/print/PrintHelper) class.\n\nPrint an image\n--------------\n\nThe Android Support Library [PrintHelper](/reference/androidx/print/PrintHelper) class provides\na simple way to print images. The class has a single layout option, [setScaleMode()](/reference/androidx/print/PrintHelper#setScaleMode(int)),\nwhich allows you to print with one of two options:\n\n- [SCALE_MODE_FIT](/reference/androidx/print/PrintHelper#SCALE_MODE_FIT) - This option sizes the image so that the whole image is shown within the printable area of the page.\n- [SCALE_MODE_FILL](/reference/androidx/print/PrintHelper#SCALE_MODE_FILL) - This option scales the image so that it fills the entire printable area of the page. Choosing this setting means that some portion of the top and bottom, or left and right edges of the image is not printed. This option is the default value if you do not set a scale mode.\n\nBoth scaling options for [setScaleMode()](/reference/androidx/print/PrintHelper#setScaleMode(int)) keep the existing aspect ratio of the image intact. The following code example\nshows how to create an instance of the [PrintHelper](/reference/androidx/print/PrintHelper) class, set the\nscaling option, and start the printing process: \n\n### Kotlin\n\n```kotlin\nprivate fun doPhotoPrint() {\n activity?.also { context -\u003e\n PrintHelper(context).apply {\n scaleMode = PrintHelper.SCALE_MODE_FIT\n }.also { printHelper -\u003e\n val bitmap = BitmapFactory.decodeResource(resources, R.drawable.droids)\n printHelper.printBitmap(\"droids.jpg - test print\", bitmap)\n }\n }\n}\n```\n\n### Java\n\n```java\nprivate void doPhotoPrint() {\n PrintHelper photoPrinter = new PrintHelper(getActivity());\n photoPrinter.setScaleMode(PrintHelper.SCALE_MODE_FIT);\n Bitmap bitmap = BitmapFactory.decodeResource(getResources(),\n R.drawable.droids);\n photoPrinter.printBitmap(\"droids.jpg - test print\", bitmap);\n}\n```\n\n\nThis method can be called as the action for a menu item. Note that menu items for actions that are\nnot always supported (such as printing) should be placed in the overflow menu. For more\ninformation, see the [Action Bar](/design/patterns/actionbar) design\nguide.\n\nAfter the [printBitmap()](/reference/androidx/print/PrintHelper#printBitmap(java.lang.String, android.graphics.Bitmap)) method is\ncalled, no further action from your application is required. The Android print user interface\nappears, allowing the user to select a printer and printing options. The user can then print the\nimage or cancel the action. If the user chooses to print the image, a print job is created and a\nprinting notification appears in the system bar.\n\nIf you want to include additional content in your printouts beyond just an image, you must\nconstruct a print document. For information on creating documents for printing, see the\n[Printing an HTML document](/training/printing/html-docs) or\n[Printing a custom document](/training/printing/custom-docs)\nlessons."]]