Saturday 1 February 2014

How to programatically take a screenshot on Android?

I just recently did something similar to use for sharing with social media. Here is the code that allowed my screen shot to be stored on sd card and used later for whatever your needs are:
// image naming and path  to include sd card  appending name you choose for file
String mPath = Environment.getExternalStorageDirectory().toString() + "/" + ACCUWX.IMAGE_APPEND;

// create bitmap screen capture
Bitmap bitmap;
View v1 = mCurrentUrlMask.getRootView();
v1
.setDrawingCacheEnabled(true);
bitmap
= Bitmap.createBitmap(v1.getDrawingCache());
v1
.setDrawingCacheEnabled(false);

OutputStream fout = null;
imageFile
= new File(mPath);

try {
fout
= new FileOutputStream(imageFile);
bitmap
.compress(Bitmap.CompressFormat.JPEG, 90, fout);
fout
.flush();
fout
.close();

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e
.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e
.printStackTrace();
}
Then, when you need to access use something like this:
Uri uri = Uri.fromFile(new File(mPath));

0 comments:

Post a Comment

Twitter Delicious Facebook Digg Stumbleupon Favorites More