Drukowanie zdjęć

Robienie i udostępnianie zdjęć to jedno z najpopularniejszych zastosowań urządzeń mobilnych. Jeśli aplikacja robi zdjęcia, wyświetla je lub umożliwia użytkownikom ich udostępnianie, zastanów się nad włączeniem w niej drukowania tych obrazów. Biblioteka pomocy Androida to wygodna funkcja umożliwiająca drukowanie obrazów przy minimalnej ilości kodu i prostym zestawie opcji układu wydruku.

Z tej lekcji dowiesz się, jak wydrukować obraz za pomocą zajęć z biblioteki pomocy wersji 4 w PrintHelper.

Drukowanie zdjęcia

Klasa PrintHelper Biblioteki pomocy Androida pozwala w prosty sposób drukować obrazy. Klasa ma 1 opcję układu (setScaleMode()), która umożliwia drukowanie za pomocą jednej z 2 opcji:

  • SCALE_MODE_FIT – ta opcja umożliwia zmianę rozmiaru obrazu w taki sposób, aby cały obraz był widoczny w obszarze strony, który można wydrukować.
  • SCALE_MODE_FILL – ta opcja skaluje obraz, tak aby wypełniał cały dostępny do zadrukowania obszar strony. Wybranie tego ustawienia oznacza, że część obrazu (górna i dolna) lub lewa i prawa krawędź zdjęcia nie zostanie wydrukowana. Jeśli nie ustawisz trybu skalowania, ta opcja jest wartością domyślną.

Obie opcje skalowania w przypadku setScaleMode() zachowują obecny współczynnik proporcji obrazu bez zmian. Poniższy przykładowy kod pokazuje, jak utworzyć instancję klasy PrintHelper, ustawić opcję skalowania i rozpocząć proces drukowania:

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

Tę metodę można wywołać jako działanie dla pozycji menu. Pamiętaj, że elementy menu, które nie zawsze są obsługiwane (np. drukowanie), należy umieszczać w rozszerzonym menu. Więcej informacji znajdziesz w przewodniku projektowania paska działań.

Po wywołaniu metody printBitmap() nie musisz podejmować żadnych dalszych działań z aplikacji. Pojawi się interfejs drukowania w Androidzie, w którym użytkownik może wybrać drukarkę i opcje drukowania. Użytkownik może wydrukować obraz lub anulować tę czynność. Jeśli użytkownik zdecyduje się wydrukować obraz, utworzone zostanie zadanie drukowania, a na pasku systemowym pojawi się powiadomienie o drukowaniu.

Jeśli w drukach chcesz uwzględnić dodatkową treść poza obrazem, musisz utworzyć dokument do wydruku. Informacje o tworzeniu dokumentów do drukowania znajdziesz w lekcjach na temat drukowania dokumentów HTML i drukowania niestandardowych dokumentów.