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: }
Thank You !! And Keep coding and Sharing knowledge !
Comments
Post a Comment