1 package com.example.android.apis.app;
2 /*
3  * Copyright (C) 2013 The Android Open Source Project
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 import android.app.Activity;
19 import android.graphics.Bitmap;
20 import android.graphics.drawable.BitmapDrawable;
21 import android.os.Bundle;
22 import android.print.PrintManager;
23 import androidx.print.PrintHelper;
24 import android.view.Menu;
25 import android.view.MenuItem;
26 import android.webkit.WebView;
27 import android.widget.ImageView;
28 
29 import com.example.android.apis.R;
30 
31 /**
32  * This class demonstrates how to implement bitmap printing.
33  * <p>
34  * This activity shows an image and offers a print option in the overflow
35  * menu. When the user chooses to print a helper class from the support
36  * library is used to print the image.
37  * </p>
38  *
39  * @see PrintManager
40  * @see WebView
41  */
42 public class PrintBitmap extends Activity {
43 
44     private ImageView mImageView;
45 
46     @Override
onCreate(Bundle savedInstanceState)47     protected void onCreate(Bundle savedInstanceState) {
48         super.onCreate(savedInstanceState);
49         setContentView(R.layout.print_bitmap);
50         mImageView = (ImageView) findViewById(R.id.image);
51     }
52 
53     @Override
onCreateOptionsMenu(Menu menu)54     public boolean onCreateOptionsMenu(Menu menu) {
55         super.onCreateOptionsMenu(menu);
56         getMenuInflater().inflate(R.menu.print_custom_content, menu);
57         return true;
58     }
59 
60     @Override
onOptionsItemSelected(MenuItem item)61     public boolean onOptionsItemSelected(MenuItem item) {
62         if (item.getItemId() == R.id.menu_print) {
63             print();
64             return true;
65         }
66         return super.onOptionsItemSelected(item);
67     }
68 
print()69     private void print() {
70         // Get the print manager.
71         PrintHelper printHelper = new PrintHelper(this);
72 
73         // Set the desired scale mode.
74         printHelper.setScaleMode(PrintHelper.SCALE_MODE_FIT);
75 
76         // Get the bitmap for the ImageView's drawable.
77         Bitmap bitmap = ((BitmapDrawable) mImageView.getDrawable()).getBitmap();
78 
79         // Print the bitmap.
80         printHelper.printBitmap("Print Bitmap", bitmap);
81     }
82 }
83