Skip to main content

Screenshot Android


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



Source: Tips4allCCNA FINAL EXAM

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

Post a Comment

Popular posts from this blog

Slow Android emulator

I have a 2.67 GHz Celeron processor, 1.21 GB of RAM on a x86 Windows XP Professional machine. My understanding is that the Android emulator should start fairly quickly on such a machine, but for me it does not. I have followed all instructions in setting up the IDE, SDKs, JDKs and such and have had some success in staring the emulator quickly but is very particulary. How can I, if possible, fix this problem?