打印照片

拍摄和分享照片是移动设备最受欢迎的用途之一。如果您的应用会拍摄照片、显示照片或允许用户分享图片,则应考虑在应用中启用这些图片的打印功能。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 文档打印自定义文档课程。