Imprimer des photos

Prendre et partager des photos est l'une des utilisations les plus courantes des appareils mobiles. Si votre application prend des photos, les affiche ou permet aux utilisateurs de les partager, vous devriez envisager d'activer l'impression de ces images dans votre application. La bibliothèque Android Support offre une fonction pratique pour activer l'impression d'image à l'aide d'un une quantité minimale 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 fournit un moyen simple d'imprimer des images. La classe possède une seule option de mise en page, setScaleMode(), qui vous permet d'imprimer avec l'une des deux options suivantes:

  • SCALE_MODE_FIT - Ceci redimensionne l'image de sorte que toute l'image s'affiche dans la zone imprimable de la page.
  • SCALE_MODE_FILL - Ceci redimensionne l'image de sorte qu'elle occupe toute la zone imprimable de la page. Choisir cette option signifie qu'une partie du haut et du bas, ou des bords gauche et droit de l'image, est non imprimées. 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 de setScaleMode() conservent le format existant de l'image. L'exemple de code suivant montre comment créer une instance de la classe PrintHelper, définissez le de mise à l'échelle et démarrez 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 à des actions qui ne sont pas toujours prises en charge (comme l'impression) doivent être placées dans le menu à développer. Pour plus consultez la conception de la barre d'action .

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

Pour inclure du contenu supplémentaire dans vos tirages au-delà d'une simple image, vous devez créer un document imprimé. Pour plus d'informations sur la création de documents à imprimer, consultez la imprimer un document HTML ; Imprimer un document personnalisé leçons.