Search code examples
javaandroidscreenshot

How to take screenshot of WHOLE activity page programmatically?


How can I take screenshot of whole activity on Android, even if content is not visible? Ex. take screenshot of full chat and then generate image file?

enter image description here

I want screenshot invisible area too.

Thanks


Solution

  • One way is to extract the bitmap of the current screen and save it. Try this:

    public void takeScreenshot(){
        Bitmap bitmap = getScreenBitmap(); // Get the bitmap
        saveTheBitmap(bitmap);               // Save it to the external storage device.
    }
    
    public Bitmap getScreenBitmap() {
       View v= findViewById(android.R.id.content).getRootView();
       v.setDrawingCacheEnabled(true); 
       v.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 
                MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
       v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight()); 
    
       v.buildDrawingCache(true);
       Bitmap b = Bitmap.createBitmap(v.getDrawingCache());
       v.setDrawingCacheEnabled(false); // clear drawing cache
       return b;
    }
    

    Android take screen shot programmatically