Monday, May 21, 2012

Screenshot Android


How can I take screenshot of selected area of phone-screen not by any program, but from code.



Source: Tips4all

4 comments:

  1. 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));

    ReplyDelete
  2. All the programs which allow screenshots work only on rooted phones.

    ReplyDelete
  3. FWIK, there's no provided API do do that at the moment.

    ReplyDelete
  4. You can try to do something like this,

    Getting a bitmap cache from a layout or a view by doing something like
    First you gotta setDrawingCacheEnabled to a layout(a linearlayout or relativelayout, or a view)

    then

    Bitmap bm = layout.getDrawingCache()

    Then you do whatever you want with the bitmap. Either turning it into an image file, or send the bitmap's uri to somewhere else.

    ReplyDelete