打印照片

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