Imprimer des photos

Prendre et partager des photos est l'une des utilisations les plus populaires des appareils mobiles. Si votre application prend des photos, les affiche ou permet aux utilisateurs de partager des images, nous vous recommandons d'activer l'impression de ces images dans votre application. La bibliothèque Android Support fournit une fonction pratique pour activer l'impression d'images en utilisant un minimum de code et un ensemble simple d'options de mise en page.

Cette leçon explique comment imprimer une image à l'aide de la classe PrintHelper de la bibliothèque Support v4.

Imprimer une image

La classe PrintHelper de la bibliothèque Android Support permet d'imprimer facilement des images. La classe comporte une seule option de mise en page, setScaleMode(), qui vous permet d'imprimer avec l'une des deux options suivantes:

  • SCALE_MODE_FIT : cette option dimensionne l'image de sorte que toute l'image s'affiche dans la zone imprimable de la page.
  • SCALE_MODE_FILL : cette option redimensionne l'image pour qu'elle occupe toute la zone imprimable de la page. Si vous sélectionnez ce paramètre, une partie des bords supérieur et inférieur, ou des bords gauche et droit de l'image, ne sera pas imprimée. Cette option est la valeur par défaut si vous ne définissez pas de mode d'échelle.

Les deux options de mise à l'échelle pour setScaleMode() conservent le format existant de l'image. L'exemple de code suivant montre comment créer une instance de la classe PrintHelper, définir l'option de scaling et démarrer le processus d'impression:

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

Cette méthode peut être appelée en tant qu'action pour un élément de menu. Notez que les éléments de menu associés aux actions qui ne sont pas toujours disponibles (telles que l'impression) doivent être placés dans le menu à développer. Pour en savoir plus, consultez le guide de conception de la barre d'action.

Une fois la méthode printBitmap() appelée, aucune autre action de votre application n'est requise. L'interface utilisateur d'impression d'Android s'affiche, permettant à l'utilisateur de sélectionner une imprimante et des options d'impression. L'utilisateur peut alors imprimer l'image ou annuler l'action. Si l'utilisateur choisit d'imprimer l'image, une tâche d'impression est créée et une notification d'impression s'affiche dans la barre système.

Si vous souhaitez inclure à vos documents imprimés des contenus autres qu'une image, vous devez créer un document imprimé. Pour plus d'informations sur la création de documents pour l'impression, consultez les leçons Imprimer un document HTML ou Imprimer un document personnalisé.