Stampa di foto

Scattare e condividere foto è uno degli utilizzi più comuni sui dispositivi mobili. Se l'applicazione scatta foto, le visualizza o consente agli utenti di condividere immagini, ti consigliamo di abilitare la stampa di queste immagini nell'applicazione. Android Support Library offre una pratica funzione per abilitare la stampa di immagini utilizzando una quantità minima di codice e un insieme semplice di opzioni di layout di stampa.

Questa lezione spiega come stampare un'immagine utilizzando il corso PrintHelper della libreria di supporto v4.

Stampa un'immagine

La classe PrintHelper di Android Support Library fornisce un modo semplice per stampare le immagini. Il corso ha un'unica opzione di layout, setScaleMode(), che consente di stampare con una delle due opzioni seguenti:

  • SCALE_MODE_FIT: questa opzione consente di ridimensionare l'immagine in modo che venga visualizzata l'intera immagine all'interno dell'area stampabile della pagina.
  • SCALE_MODE_FILL: questa opzione riduce in scala l'immagine in modo da riempire l'intera area stampabile della pagina. Se scegli questa impostazione, alcune parti dei bordi superiore e inferiore o dei bordi sinistro e destro dell'immagine non verranno stampate. Questa opzione è il valore predefinito se non imposti una modalità di scala.

Entrambe le opzioni di ridimensionamento di setScaleMode() mantengono invariate le proporzioni esistenti dell'immagine. Il seguente esempio di codice mostra come creare un'istanza della classe PrintHelper, impostare l'opzione di scalabilità e avviare il processo di stampa:

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

Questo metodo può essere chiamato come azione per una voce di menu. Tieni presente che le voci di menu relative ad azioni non sempre supportate (come la stampa) devono essere inserite nel menu extra. Per ulteriori informazioni, consulta la guida alla progettazione della barra delle azioni.

Dopo aver chiamato il metodo printBitmap(), non sono necessarie ulteriori azioni da parte dell'applicazione. Viene visualizzata l'interfaccia utente di stampa di Android, che consente all'utente di selezionare una stampante e le opzioni di stampa. L'utente può quindi stampare l'immagine o annullare l'azione. Se l'utente sceglie di stampare l'immagine, viene creato un processo di stampa e viene visualizzata una notifica di stampa nella barra di sistema.

Se vuoi includere nelle tue stampe altri contenuti oltre a un'immagine, devi costruire un documento cartaceo. Per informazioni sulla creazione di documenti da stampare, consulta le lezioni sulla stampa di un documento HTML o sulla stampa di un documento personalizzato.