打印照片

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