> //copy the content fron Canvas to Bitmap > mCanvas.drawBitmap(mBitmapScreenshot, 0, 0, null);
What is mBitmapScreenshot? Where is it being set to anything? On Wed, Sep 9, 2009 at 6:50 AM, Ajeet Singh<[email protected]> wrote: > > Hi Sean, > > I have tried in the following way, but still I am getting black > picture :( > Can you please look into the code, and see where I am doing wrong. > > Thanks for all your support. > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > //create a webview > WebView w = new WebView(this); > > //Loads the url > w.loadUrl("http://www.yahoo.com"); > > //After loading completely, take its picture > Picture picture = w.capturePicture(); > > //Create a new canvas > Canvas mCanvas = new Canvas(); > > //Draw the Picture into the Canvas > picture.draw(mCanvas); > > //Create a Bitmap > Bitmap sreenshot = Bitmap.createBitmap(picture.getWidth(), > picture.getHeight(),Config.ARGB_8888); > > > //copy the content fron Canvas to Bitmap > mCanvas.drawBitmap(mBitmapScreenshot, 0, 0, null); > > > //Save the Bitmap to local filesystem > if(sreenshot != null) { > ByteArrayOutputStream mByteArrayOpStream = new > ByteArrayOutputStream(); > screenshot.compress(Bitmap.CompressFormat.JPEG, 90, > mByteArrayOpStream); > try { > fos = openFileOutput("yahoo.jpg", MODE_WORLD_WRITEABLE); > fos.write(mByteArrayOpStream.toByteArray()); > fos.close(); > } catch (FileNotFoundException e) { > e.printStackTrace(); > } catch (IOException e) { > e.printStackTrace(); > } > } > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > Thanks in advance, > Ajeet Singh > > > On Sep 9, 9:26 am, Ajeet Singh <[email protected]> wrote: >> Hi Sean, >> >> Thanks for replying. >> >> I got the idea what exactly you want to say. >> >> The code does not work straight forward. It is crashing at drawing >> canvas from webview. >> >> w.draw(tempCanvas); >> >> If I comment this line it it saves yahoo.jpg file totally black in >> color. nothing comes out there. >> >> Let me try what is can be done to get the actual view of any site. >> >> Anyway thanks. >> >> Ajeet Singh >> >> On Sep 8, 5:59 pm, Sean Hodges <[email protected]> wrote: >> >> > Well, based on your example code, my suggestion is to do something like >> > this: >> >> > WebView w = new WebView(this); >> > w.loadUrl("http://www.yahoo.com"); >> >> > // Copy the view canvas to a bitmap >> > Canvas tempCanvas = new Canvas(); >> > w.draw(tempCanvas); >> > Bitmapscreenshot= Bitmap.createBitmap(w.getWidth(), w.getHeight(), >> > Config.ARGB_8888); >> > tempCanvas.drawBitmap(screenshot, 0, 0, null); >> >> > // Save to disk >> > if(bmpBuffer != null) { >> > mByteArrayOpStream = new ByteArrayOutputStream(); >> > bmpBuffer.compress(Bitmap.CompressFormat.JPEG, 90, >> > mByteArrayOpStream); >> > fos = openFileOutput("yahoo.jpg", MODE_WORLD_WRITEABLE); >> > fos.write(mByteArrayOpStream.toByteArray()); >> > fos.close(); >> >> > } >> >> > NOTE: I haven't tested this, it's only to describe what I meant. >> > You'll probably need to tweak the code to make it work properly. >> >> > On Tue, Sep 8, 2009 at 6:49 AM, Ajeet Singh<[email protected]> >> > wrote: >> >> > > Any body could you please share some info regarding this? >> >> > > On Sep 7, 6:00 pm, Ajeet Singh <[email protected]> wrote: >> > >> Thanks, sean for the quick reply. >> >> > >> I did not get what exactly you want to say.(Sorry for that) >> >> > >> Let me explain what i am trying to do. >> >> > >> ################################### Code START >> > >> ################################### >> >> > >> // I have created one webview >> > >> WebView w = new WebView(this); >> > >> //Loaded yahoo >> > >> w.loadUrl("http://www.yahoo.com"); >> > >> //Capture the picture >> > >> Picture picture = w.capturePicture(); >> > >> int mHeight = picture.getHeight(); >> > >> int mWidth = picture.getWidth(); >> >> > >> // created the Bitmap >> > >> Bitmap bmpBuffer = Bitmap.createBitmap(mWidth, mHeight, >> > >> Config.ARGB_8888); >> >> > >> if(bmpBuffer != null) { >> > >> mByteArrayOpStream = new ByteArrayOutputStream(); >> > >> bmpBuffer.compress(Bitmap.CompressFormat.JPEG, 90, >> > >> mByteArrayOpStream); >> >> > >> fos = openFileOutput("yahoo.jpg", MODE_WORLD_WRITEABLE); >> > >> fos.write(mByteArrayOpStream.toByteArray()); >> > >> fos.close();} >> >> > >> ################################### Code END >> > >> ################################### >> >> > >> But when I see my image (yahoo.jpg) its an empty image. Nothing is >> > >> there. >> >> > >> After that i tried another method. there is one function >> > >> getDrawingCache() which returns the Bitmap. But it is returning the >> > >> Bitmap only of the visible area of the screen. (NOT the whole webpage) >> >> > >> Any help would be appreciated. >> >> > >> Thanks in Advance, >> > >> Ajeet Singh >> >> > >> On Sep 7, 1:42 pm, Sean Hodges <[email protected]> wrote: >> >> > >> > I've not done this before, but I believe you could create a new Canvas >> > >> > object, and call the draw() method on your parent activity, passing in >> > >> > your temp canvas object as the target: >> >> > >> >http://developer.android.com/reference/android/view/View.html#draw%28... >> >> > >> > Something similar to this: >> >> > >> > Canvas tempCanvas = new Canvas(); >> > >> > this.draw(tempCanvas); >> > >> > Bitmapscreenshot= tempCanvas.drawBitmap(...) >> >> > >> > After that, you should be able to call drawBitmap() on the canvas, >> > >> > and it will produce a "screenshiot" of everything inside that >> > >> > activity. >> >> > >> > On Mon, Sep 7, 2009 at 9:29 AM, Ajeet >> > >> > Singh<[email protected]> wrote: >> >> > >> > > Actually I want to take screen-shot of what is shown on the screen >> > >> > > as >> > >> > > well as beyond it also like in case if scroll bar are present. >> >> > >> > > There is one function getDrawingCache() which does that, but it only >> > >> > > save picture what is available on the screen. It does not capture >> > >> > > beyond screen if the picture is big. >> >> > >> > > If some body knows then plz reply. >> >> > >> > > Anyway, i will post this question to android-developer forum. >> >> > >> > > Thanks gjs for your quick reply. >> >> > >> > > Ajeet >> >> > >> > > On Sep 7, 12:22 pm, gjs <[email protected]> wrote: >> > >> > >> And this question is probably better asked in the developers group. >> >> > >> > >>http://groups.google.com/group/android-developers >> >> > >> > >> On Sep 7, 5:11 pm, gjs <[email protected]> wrote: >> >> > >> > >> > Hi, >> >> > >> > >> > Have a look at View.draw(Canvas canvas) in the >> > >> > >> > docshttp://developer.android.com/reference/android/view/View.html >> >> > >> > >> > Create a Bitmap of an appropriate size and a Canvas which uses >> > >> > >> > the >> > >> > >> > Bitmap, call View.draw(canvas) - using your view - then save the >> > >> > >> > Bitmap to file in whatever format jpg, png etc. >> >> > >> > >> > It works for most but not all types of views. >> >> > >> > >> > Regards >> >> > >> > >> > On Sep 7, 2:42 pm, Ajeet Singh <[email protected]> >> > >> > >> > wrote: >> >> > >> > >> > > I want to usescreenshotkind of application in my own >> > >> > >> > > application. So >> > >> > >> > > that I can take picture in any format and save it. >> >> > >> > >> > > Can anybody give me hint what to use and how to start? >> >> > >> > >> > > Thanks in advance, >> > >> > >> > > Ajeet >> >> > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Discuss" 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-discuss?hl=en -~----------~----~----~----~------~----~------~--~---
