10

I have a View and I want to convert it into an image in order to store it somewhere. But how can I convert this View to an image?

Jason Plank
  • 2,336
  • 5
  • 31
  • 40
James
  • 13,891
  • 26
  • 68
  • 93

2 Answers2

9

Try this for take image of view and store in sd card..

View view = TextView.getRootView();
//You can use any view of your View instead of TextView

if (view != null)
{
    System.out.println("view is not null.....");
    view.setDrawingCacheEnabled(true);
    view.buildDrawingCache();
    Bitmap bm = view.getDrawingCache();

    try
    {
        if (bm != null)
        {
            String dir = Environment.getExternalStorageDirectory().toString();
            System.out.println("bm is not null.....");
            OutputStream fos = null;
            File file = new File(dir,"sample.JPEG");
            fos = new FileOutputStream(file);
            BufferedOutputStream bos = new BufferedOutputStream(fos);
            bm.compress(Bitmap.CompressFormat.JPEG, 50, bos);
            bos.flush();
            bos.close();
        }
    }
    catch(Exception e)
    {
        System.out.println("Error="+e);
        e.printStackTrace();
    }
}
Chad Bingham
  • 32,650
  • 19
  • 86
  • 115
Niranj Patel
  • 32,980
  • 10
  • 97
  • 133
5
  1. Enable drawing cache on the view:

    view.setDrawingCacheEnabled(true);
    
  2. Create a bitmap from the cache:

    bitmap = Bitmap.createBitmap(view.getDrawingCache());
    
  3. Save the bitmap wherever...

  4. Disable drawing cache:

    view.setDrawingCacheEnabled(false);
    
Jason Plank
  • 2,336
  • 5
  • 31
  • 40
pumpkee
  • 3,357
  • 3
  • 27
  • 34
  • 5
    I'm getting a **NullPointerException** for this code line `Bitmap bm = Bitmap.createBitmap(view.getDrawingCache());` What can be the reason ? – AnujAroshA Sep 06 '12 at 06:27