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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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
>> >> [email protected]
>>
>> >> 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 [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to