Como imprimir fotos

Um dos usos mais comuns dos dispositivos móveis é tirar e compartilhar fotos. Se o seu aplicativo tirar fotos, exibir ou permitir que os usuários compartilhem imagens, considere ativar a impressão dessas imagens no seu aplicativo. 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 imprimir imagens. A classe tem uma única opção de layout, setScaleMode(), que permite a impressão com uma das duas opções:

  • SCALE_MODE_FIT: este dimensiona a imagem para que ela seja exibida inteira na área imprimível da página.
  • SCALE_MODE_FILL: esta dimensiona a imagem para que ela preencha toda a área imprimível da página. Ao escolher esta opção significa que uma parte das bordas superior e inferior, ou esquerda e direita da imagem, não impresso. 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 o a opção de dimensionamento e inicie 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 são sempre compatíveis (como impressão) devem ser colocados no menu flutuante. Para mais informações, consulte o design da Barra de ações guia.

Depois que o método printBitmap() for chamado, nenhuma outra ação de seu aplicativo é necessária. A interface do usuário para impressão do Android aparece, permitindo que o usuário selecione uma impressora e opções de impressão. Em seguida, o usuário pode imprimir imagem ou cancelar a ação. Se o usuário escolher imprimir a imagem, um trabalho de impressão é criado e um notificação de impressão aparece na barra do sistema.

Se você quiser incluir mais conteúdo nas impressões além de apenas uma imagem, será necessário e construir um documento de impressão. Para informações sobre como criar documentos para impressão, consulte a Imprimir um documento HTML ou Como imprimir documentos personalizados aulas.