打印照片

拍照和分享照片是移动设备最受欢迎的用途之一。如果你的应用拍摄照片、显示照片或允许用户分享图片,你应该考虑在应用中启用这些图片的打印功能。Android 支持库提供了一个方便的功能,使用最少的代码和简单的打印布局选项即可启用图片打印。

本课程介绍如何使用 v4 支持库中的 PrintHelper 类打印图片。

打印图片

Android 支持库中的 PrintHelper 类提供了一种简单的图片打印方式。该类有一个布局选项 setScaleMode(),允许你选择以下两种打印选项之一

  • SCALE_MODE_FIT - 此选项会调整图片大小,使其在页面的可打印区域内完整显示。
  • SCALE_MODE_FILL - 此选项会缩放图片,使其填充整个页面的可打印区域。选择此设置意味着图片顶部、底部、左侧或右侧的部分内容将不会被打印。如果你未设置缩放模式,则此选项是默认值。

setScaleMode() 的两种缩放选项都会保持图片现有的宽高比不变。以下代码示例展示了如何创建 PrintHelper 类的一个实例,设置缩放选项,并开始打印过程

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

此方法可作为菜单项的操作被调用。请注意,对于并非始终支持的操作(例如打印),其菜单项应放在溢出菜单中。如需了解详情,请参阅操作栏设计指南。

调用 printBitmap() 方法后,你的应用无需执行任何进一步操作。系统将显示 Android 打印用户界面,允许用户选择打印机和打印选项。然后,用户可以打印图片或取消操作。如果用户选择打印图片,系统会创建打印作业,并在系统栏中显示打印通知。

如果你想在打印输出中包含除图片以外的其他内容,则必须构建打印文档。如需了解如何创建用于打印的文档,请参阅打印 HTML 文档打印自定义文档课程。