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.