Fotos drucken

Das Aufnehmen und Teilen von Fotos ist eine der beliebtesten Anwendungen für Mobilgeräte. Wenn Ihre Anwendung Fotos aufnimmt, anzeigt oder Nutzern ermöglicht, Bilder zu teilen, sollten Sie das Drucken dieser Bilder in Ihrer Anwendung aktivieren. Die Android Support Library bietet eine praktische Funktion zum Drucken von Bildern mit minimalem Code und einfachen Drucklayoutoptionen.

In dieser Lektion erfahren Sie, wie Sie mit der PrintHelper-Klasse der Supportbibliothek der Version 4 ein Bild drucken.

Bilder drucken

Die PrintHelper-Klasse der Android Support Library bietet eine einfache Möglichkeit, Bilder zu drucken. Die Klasse hat nur die Layoutoption setScaleMode(), mit der Sie mit einer von zwei Optionen drucken können:

  • SCALE_MODE_FIT: Bei dieser Option wird die Größe des Bildes so festgelegt, dass das gesamte Bild im druckbaren Bereich der Seite angezeigt wird.
  • SCALE_MODE_FILL: Mit dieser Option wird das Bild so skaliert, dass es den gesamten druckbaren Bereich der Seite ausfüllt. Wenn du diese Einstellung auswählst, wird ein Teil des oberen und unteren Rands oder des linken und rechten Rands des Bildes nicht gedruckt. Diese Option ist der Standardwert, wenn Sie keinen Skalierungsmodus festlegen.

Bei beiden Skalierungsoptionen für setScaleMode() wird das vorhandene Seitenverhältnis des Bilds beibehalten. Das folgende Codebeispiel zeigt, wie Sie eine Instanz der PrintHelper-Klasse erstellen, die Skalierungsoption festlegen und den Druckvorgang starten:

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

Diese Methode kann als Aktion für ein Menüelement aufgerufen werden. Menüpunkte für Aktionen, die nicht immer unterstützt werden (z. B. Drucken), sollten im Dreipunkt-Menü platziert werden. Weitere Informationen finden Sie in der Designanleitung für Aktionsleiste.

Nach dem Aufruf der Methode printBitmap() sind keine weiteren Maßnahmen Ihre Anwendung erforderlich. Die Android-Benutzeroberfläche zum Drucken wird angezeigt, in der der Nutzer einen Drucker und Druckoptionen auswählen kann. Der Nutzer kann das Bild dann drucken oder die Aktion abbrechen. Wenn der Nutzer das Bild drucken möchte, wird ein Druckauftrag erstellt und in der Systemleiste wird eine Druckbenachrichtigung angezeigt.

Wenn Sie Ihren Ausdrucken zusätzliche Inhalte als nur ein Bild hinzufügen möchten, müssen Sie ein Druckdokument erstellen. Informationen zum Erstellen von Dokumenten zum Drucken finden Sie in den Lektionen HTML-Dokument drucken oder Benutzerdefiniertes Dokument drucken.