Como imprimir fotos

Um dos usos mais comuns dos dispositivos móveis é tirar e compartilhar fotos. Se o aplicativo tirar fotos, mostrar essas imagens ou permitir que os usuários compartilhem imagens, considere ativar a impressão dessas imagens. A Biblioteca de Suporte do Android oferece uma função conveniente para ativar a impressão de imagens usando uma quantidade mínima de código e um conjunto simples de opções de layout de impressão.

Esta lição mostra como imprimir uma imagem usando a classe PrintHelper da Biblioteca de Suporte v4.

Imprimir uma imagem

A classe PrintHelper da Biblioteca de Suporte do Android oferece uma maneira simples de mostrar imagens. A classe tem uma única opção de layout, setScaleMode(), que permite imprimir com uma destas duas opções:

  • SCALE_MODE_FIT: essa opção dimensiona a imagem para que ela seja exibida inteira na área imprimível da página.
  • SCALE_MODE_FILL: essa opção dimensiona a imagem para que ela preencha toda a área imprimível da página. Escolher essa configuração significa que alguma parte das bordas superior e inferior, ou esquerda e direita da imagem não será impressa. Esse será o valor padrão se um modo de dimensionamento não for definido.

As duas opções de dimensionamento para setScaleMode() mantêm a proporção existente da imagem intacta. O exemplo de código a seguir mostra como criar uma instância da classe PrintHelper, definir a opção de dimensionamento e iniciar o processo de impressão:

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

Esse método pode ser chamado como a ação para um item de menu. Os itens de menu para ações que nem sempre são compatíveis (como impressão) precisam ser colocados no menu flutuante. Para ver mais informações, consulte o guia de design da barra de ações (link em inglês).

Nenhuma outra ação do seu aplicativo será necessária depois que o método printBitmap() for chamado. A interface do usuário de impressão do Android é exibida, permitindo que o usuário selecione uma impressora e as opções de impressão. O usuário pode imprimir a imagem ou cancelar a ação. Se o usuário optar por imprimir a imagem, um trabalho de impressão será criado e uma notificação de impressão será exibida na barra do sistema.

Para incluir mais conteúdo nas impressões além de uma imagem, é necessário criar um documento de impressão. Para informações sobre como criar documentos para impressão, consulte as lições Como imprimir um documento HTML ou Como imprimir documentos personalizados.