Sometimes we have to share the Report or Final receipt Screen  from the Current Application  .In this scenario we take screenshot of Current activity and then share this as image file using sharing Options . So lets move to the Coding Part without wasting time .
1:  public class MainActivity extends AppCompatActivity {  
2:    File imagePath;  
3:    @Override  
4:    protected void onCreate(Bundle savedInstanceState) {  
5:      super.onCreate(savedInstanceState);  
6:      setContentView(R.layout.activity_main);  
7:      getSupportActionBar().setDisplayHomeAsUpEnabled(true);  
8:      ImageView imageView=(ImageView)findViewById(R.id.share);  
9:      imageView.setOnClickListener(new View.OnClickListener() {  
10:        @Override  
11:        public void onClick(View v) {  
12:          Bitmap bitmap = takeScreenshot();  
13:          saveBitmap(bitmap);  
14:          shareIt();  
15:        }  
16:      });  
17:    }  
18:    public Bitmap takeScreenshot() {  
19:      View rootView = findViewById(android.R.id.content).getRootView();  
20:      rootView.setDrawingCacheEnabled(true);  
21:      return rootView.getDrawingCache();  
22:    }  
23:    public void saveBitmap(Bitmap bitmap) {  
24:      imagePath = new File(Environment.getExternalStorageDirectory() + "/screenshot.png");  
25:      FileOutputStream fos;  
26:      try {  
27:        fos = new FileOutputStream(imagePath);  
28:        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);  
29:        fos.flush();  
30:        fos.close();  
31:      } catch (FileNotFoundException e) {  
32:        Log.e("GREC", e.getMessage(), e);  
33:      } catch (IOException e) {  
34:        Log.e("GREC", e.getMessage(), e);  
35:      }  
36:    }  
37:    private void shareIt() {  
38:      Uri uri = FileProvider.getUriForFile(MainActivity.this, BuildConfig.APPLICATION_ID + ".provider",imagePath);  
39:      Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);  
40:      sharingIntent.setType("image/*");  
41:      String shareBody = "Please Find the screenshot.";  
42:      sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Your Message Here ");  
43:      sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);  
44:      sharingIntent.putExtra(Intent.EXTRA_STREAM, uri);  
45:      startActivity(Intent.createChooser(sharingIntent, "Share via"));  
46:    }  
47:    @Override  
48:    public boolean onOptionsItemSelected(MenuItem item) {  
49:      switch (item.getItemId())  
50:      {  
51:        case android.R.id.home:  
52:          finish();  
53:          return true;  
54:      }  
55:      return super.onOptionsItemSelected(item);  
56:    }  
57:  }  
Comments
Post a Comment