page.title=Printing Photos parent.title=Printing Content parent.link=index.html trainingnavtop=true next.title=Printing HTML Documents next.link=html-docs.html @jd:body

This lesson teaches you to

  1. Print an Image

Taking and sharing photos is one of the most popular uses for mobile devices. If your application takes photos, displays them, or allows users to share images, you should consider enabling printing of those images in your application. The Android Support Library provides a convenient function for enabling image printing using a minimal amount of code and simple set of print layout options.

This lesson shows you how to print an image using the v4 support library {@link android.support.v4.print.PrintHelper} class.

Print an Image

The Android Support Library {@link android.support.v4.print.PrintHelper} class provides a simple way to print of images. The class has a single layout option, {@link android.support.v4.print.PrintHelper#setScaleMode setScaleMode()}, which allows you to print with one of two options:

Both scaling options for {@link android.support.v4.print.PrintHelper#setScaleMode setScaleMode()} keep the existing aspect ratio of the image intact. The following code example shows how to create an instance of the {@link android.support.v4.print.PrintHelper} class, set the scaling option, and start the printing process:

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

This method can be called as the action for a menu item. Note that menu items for actions that are not always supported (such as printing) should be placed in the overflow menu. For more information, see the Action Bar design guide.

After the {@link android.support.v4.print.PrintHelper#printBitmap printBitmap()} method is called, no further action from your application is required. The Android print user interface appears, allowing the user to select a printer and printing options. The user can then print the image or cancel the action. If the user chooses to print the image, a print job is created and a printing notification appears in the system bar.

If you want to include additional content in your printouts beyond just an image, you must construct a print document. For information on creating documents for printing, see the Printing an HTML Document or Printing a Custom Document lessons.