写真の印刷

写真の撮影と共有は、モバイル デバイスの最も一般的な用途の 1 つです。アプリケーションが 写真を撮影して表示したり、ユーザーによる画像の共有を許可したりする場合には、印刷を有効にすることを検討する必要があります。 使用できますAndroid サポート ライブラリには、 必要最小限のコードとシンプルな印刷レイアウト オプションのセットです。

このレッスンでは、v4 サポート ライブラリ PrintHelper クラスを使用して画像を印刷する方法について説明します。

画像を印刷する

Android サポート ライブラリの PrintHelper クラスは、 簡単に画像を印刷できます。このクラスには単一のレイアウト オプション setScaleMode() があります。 次の 2 つのオプションのいずれかで印刷できます

  • SCALE_MODE_FIT - これ オプションを使用すると、ページの印刷可能領域内に画像全体が表示されるように画像のサイズが変更されます。
  • SCALE_MODE_FILL - これ オプション: ページの印刷可能領域全体に表示されるように画像が拡大縮小されます。これを選択 は、画像の上端と下端、または左右端の一部が 出力されません。スケールモードを設定しない場合は、これがデフォルト値です。

setScaleMode() のスケーリング オプションは両方とも、画像のアスペクト比をそのまま維持します。次のコード例 PrintHelper クラスのインスタンスを作成する方法を示しています。 スケーリング オプションを選択し、印刷プロセスを開始します。

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

このメソッドは、メニュー項目のアクションとして呼び出すことができます。アクションのメニュー項目は、Google Cloud の (印刷など)常にサポートされないものは、オーバーフロー メニューに配置してください。詳細 アクションバーのデザインをご覧ください。 ご覧ください

printBitmap() メソッドの アプリケーションで追加のアクションを実行する必要はありません。Android の印刷ユーザー インターフェース が表示され、ユーザーはプリンタや印刷オプションを選択できます。その後、ユーザーは アクションをキャンセルします。ユーザーが画像の印刷を選択すると、印刷ジョブが作成され、 印刷の通知が表示されます。

画像以外のコンテンツをプリントアウトに含める場合は、 出力ドキュメントを作成します。印刷するドキュメントの作成方法については、 HTML ドキュメントの印刷 カスタム ドキュメントの印刷 学びました。