That worked perfectly, here is the final code that saves the screenshot as a file:
//mView is my View Bitmap screenBMP = Bitmap.createBitmap(mView.getMeasuredWidth(), mView.getMeasuredHeight(), Bitmap.Config.RGB_565); Canvas screenShotCanvas = new Canvas(screenBMP); mView.draw(screenShotCanvas); try { FileOutputStream fos = new FileOutputStream("/sdcard/test.jpg"); screenBMP.compress(Bitmap.CompressFormat.JPEG, 100, fos); fos.close(); } catch (FileNotFoundException e) { Log.d("error",e.getMessage()); } catch (IOException e) { Lod.d("error",e.getMessage()); } catch (Exception e) { Log.d("error",e.getMessage()"); } On Jan 14, 3:51 pm, James Yum <j...@google.com> wrote: > Hi, > > Try something like this: > > 1. Create a new bitmap with the same dimensions as the view. > 2. Create a new canvas for that bitmap, e.g.: > > Canvas screenshotCanvas = new Canvas(screenshotBitmap); > > 3. Draw onto the canvas: > > view.draw(screenshotCanvas); > > Cheers, > James > > On Wed, Jan 14, 2009 at 12:42 PM, srajpal <sraj...@gmail.com> wrote: > > > I thought I was drawing the View into the Bitmap with > > > screenshot = Bitmap.createBitmap(mView.getDrawingCache()); > > or > > screenshot = Bitmap.createBitmap(mView.getDrawingCache(), > > mView.getLeft(), mView.getTop(), > > mView.getMeasuredWidth(), mView.getMeasuredHeight()); > > > Is there another, better way? > > > On Jan 14, 3:33 pm, James Yum <j...@google.com> wrote: > >> Just checking, have you thought about drawing the view into a Bitmap? > > >> Cheers, > >> James > > >> On Wed, Jan 14, 2009 at 12:29 PM, srajpal <sraj...@gmail.com> wrote: > > >> > but i get the same error if i just pick a potion of the screen > > >> > screenshot = Bitmap.createBitmap(mView.getDrawingCache(), > >> > 100,100,100,100); > > >> > or try to pass it exact size > > >> > screenshot = Bitmap.createBitmap(mView.getDrawingCache(), > >> > mView.getLeft(), mView.getTop(), > >> > mView.getMeasuredWidth(), mView.getMeasuredHeight()); > > >> > any suggestions? > > >> > On Jan 14, 1:25 am, Romain Guy <romain...@google.com> wrote: > >> >> Yes, you are creating a drawing cache that the system has decided is > >> >> too large. In such a situation, the returned drawing cache is null. > >> >> You have to account for this. > > >> >> On Tue, Jan 13, 2009 at 5:34 PM, srajpal <sraj...@gmail.com> wrote: > > >> >> > I am having an issue when trying to save a screen shot of a view to a > >> >> > file. > > >> >> > I am using the following code to save the bitmap > > >> >> > Java: > > >> >> > Bitmap screenshot; > > >> >> > mView.setDrawingCacheEnabled(true); > >> >> > screenshot = Bitmap.createBitmap(mView.getDrawingCache()); > >> >> > mView.setDrawingCacheEnabled(false); > > >> >> > try { > >> >> > FileOutputStream fos = new FileOutputStream("/sdcard/ > >> >> > test.png"); > >> >> > screenshot.compress(Bitmap.CompressFormat.PNG, 100, fos); > >> >> > fos.close(); > >> >> > } catch (FileNotFoundException e) { > >> >> > Log.d("FileNotFoundException: " + e.getMessage()); > >> >> > } catch (IOException e) { > >> >> > Log.d("IOException: " + e.getMessage()); > >> >> > } > > >> >> > it works fine unless i put the following in my onCreate() to make sure > >> >> > I am in full screen mode > > >> >> > Java: > > >> >> > getWindow().setFlags > >> >> > (WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); > > >> >> > when that code is in there I get a NullPointerException at > >> >> > createBitmap > >> >> > () > >> >> > does anybody know why this would be happening? > >> >> > _________________ > >> >> > -- > >> >> > Sunny > > >> >> -- > >> >> Romain Guy > >> >> Android framework engineer > >> >> romain...@android.com > > >> >> Note: please don't send private questions to me, as I don't have time > >> >> to provide private support. All such questions should be posted on > >> >> public forums, where I and others can see and answer them > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---