Ya está disponible la segunda Vista previa para desarrolladores de Android 11; pruébala y comparte tus comentarios.

Cómo imprimir fotos

Tomar y compartir fotos es uno de los usos más populares de los dispositivos móviles. Si tu aplicación toma fotos, las muestra o permite que los usuarios compartan imágenes, deberías considerar habilitar la impresión de esas imágenes en tu aplicación. La biblioteca de compatibilidad de Android proporciona una práctica función que permite la impresión de imágenes mediante una cantidad mínima de código y un conjunto simple de opciones de diseño de impresión.

En esta lección, se muestra cómo imprimir una imagen con la clase PrintHelper de la biblioteca de compatibilidad v4.

Cómo imprimir una imagen

La clase PrintHelper de la biblioteca de compatibilidad de Android proporciona una forma sencilla de imprimir imágenes. Tiene una única opción de diseño, setScaleMode(), que te permite imprimir con una de dos opciones:

  • SCALE_MODE_FIT: Esta opción ajusta el tamaño de la imagen para que aparezca dentro del área de impresión de la página.
  • SCALE_MODE_FILL: Esta opción ajusta la imagen para que ocupe toda el área imprimible de la página. Si eliges esta opción, parte de los bordes superior, inferior, izquierdo o derecho de la imagen no se imprimirá. Esta opción es el valor predeterminado si no estableces un modo de ajuste.

Ambas opciones de ajuste para setScaleMode() mantienen intacta la proporción existente de la imagen. En el siguiente ejemplo de código, se muestra cómo crear una instancia de la clase PrintHelper, establecer la opción de escala y luego iniciar el proceso de impresión:

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

Se puede llamar a este método como la acción de un elemento de menú. Ten en cuenta que los elementos de menú para acciones que no siempre son compatibles (como los de impresión) deberían colocarse en el Menú ampliado. Para obtener más información, consulta la guía de diseño Barra de acciones.

Una vez que se llama al método printBitmap(), tu aplicación ya no debe realizar ninguna otra acción. Aparecerá la interfaz de usuario de impresión de Android, que permite al usuario seleccionar una impresora y las opciones de impresión. El usuario puede imprimir la imagen o cancelar la acción. Si el usuario elige imprimir la imagen, se crea un trabajo de impresión y aparece una notificación de impresión en la barra del sistema.

Si quieres incluir contenido adicional en tus impresiones más allá de una simple imagen, debes crear un documento de impresión. Para obtener información sobre cómo crear documentos de impresión, consulta las lecciones Cómo imprimir un documento HTML o Cómo imprimir un documento personalizado.