how to take screenshot programmatically and save it on gallery?

后端 未结 4 2077
遇见更好的自我
遇见更好的自我 2020-12-18 06:49

i would to know what is the code to take a screenshot of the current screen (after a press of a button) and save it on a gallery because I don\'t have a device with sd cards

相关标签:
4条回答
  • 2020-12-18 07:06

    This will save to the gallery. The code also sets an image path.. that is useful with Intent.SEND_ACTION and email Intents.

    String imagePath = null;
    Bitmap imageBitmap = screenShot(mAnyView);
    if (imageBitmap != null) {
        imagePath = MediaStore.Images.Media.insertImage(getContentResolver(), imageBitmap, "title", null);
    }
    
    
    public Bitmap screenShot(View view) {
        if (view != null) {
            Bitmap bitmap = Bitmap.createBitmap(view.getWidth(),
                    view.getHeight(), Bitmap.Config.ARGB_8888);
            Canvas canvas = new Canvas(bitmap);
            view.draw(canvas);
            return bitmap;
        }
        return null;
    }
    
    0 讨论(0)
  • 2020-12-18 07:14
      Bitmap bitmap;
      View v1 = findViewById(R.id.rlid);// get ur root view id
      v1.setDrawingCacheEnabled(true); 
      bitmap = Bitmap.createBitmap(v1.getDrawingCache());
      v1.setDrawingCacheEnabled(false);
    

    This should do the trick.

    For saving

      ByteArrayOutputStream bytes = new ByteArrayOutputStream();
      bitmap.compress(Bitmap.CompressFormat.JPEG, 40, bytes);
      File f = new File(Environment.getExternalStorageDirectory()
                        + File.separator + "test.jpg")
      f.createNewFile();
      FileOutputStream fo = new FileOutputStream(f);
      fo.write(bytes.toByteArray()); 
      fo.close();
    
    0 讨论(0)
  • 2020-12-18 07:15
        View v1 = L1.getRootView();
        v1.setDrawingCacheEnabled(true);
        Bitmap bm = v1.getDrawingCache();
        BitmapDrawable bitmapDrawable = new BitmapDrawable(bm);
        image = (ImageView) findViewById(R.id.screenshots);
        image.setBackgroundDrawable(bitmapDrawable);
    

    For complete source code go through the below blog

    http://amitandroid.blogspot.in/2013/02/android-taking-screen-shots-through-code.html

    For storing the Bitmap to see the below link

    Android Saving created bitmap to directory on sd card

    0 讨论(0)
  • 2020-12-18 07:20

    As 323go commented, this isn't possible unless your device is rooted, really.

    But if it is, it might be a good job for monkeyrunner or if you're using an emulator.

    0 讨论(0)
提交回复
热议问题