2012-04-15 10 views

Odpowiedz

2
WebView webView = new WebView(this); 
//your image is in webview 

Picture picture = webView.capturePicture(); 
Canvas canvas = new Canvas(); 
picture.draw(canvas); 
Bitmap image = Bitmap.createBitmap(picture.getWidth(), 
picture.getHeight(),Config.ARGB_8888); 
canvas.drawBitmap(mimage, 0, 0, null); 
if(image != null) { 
    ByteArrayOutputStream mByteArrayOS = new 
    ByteArrayOutputStream(); 
    image.compress(Bitmap.CompressFormat.JPEG, 90, mByteArrayOS); 
    try { 
     fos = openFileOutput("image.jpg", MODE_WORLD_WRITEABLE); 
     fos.write(mByteArrayOS.toByteArray()); 
     fos.close(); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

spróbować wyżej, aby przechwycić obraz z Webview

+2

kod piszesz jest tylko używane, aby uzyskać zrzut WebView? –

+0

Chcę zapisać wszystkie obrazy wyświetlane na przeglądarkach internetowych –

+1

Dlaczego akceptujesz odpowiedź, jeśli nie o to pytasz? –

1

Następnie trzeba ustawić WebViewClient do swojego WebView i zastąpić shouldOverrideUrlLoading i onLoadResource metod. Podam prosty przykład:

WebView yourWebView; // initialize it as always... 
// this is the funny part: 
yourWebView.setWebViewClient(yourWebClient); 

// somewhere on your code... 
WebViewClient yourWebClient = new WebViewClient(){ 
    // you tell the webclient you want to catch when a url is about to load 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url){ 
     return true; 
    } 
    // here you execute an action when the URL you want is about to load 
    @Override 
    public void onLoadResource(WebView view, String url){ 
     if(url.equals("http://cnn.com")){ 
      // do whatever you want 
      //download the image from url and save it whereever you want 
     } 
    } 
} 
0

ja nie używany kod z góry i „obrobione”, ale produkował czarne obrazy tylko tak po kilka godzin tutaj są moje poprawki, teraz pisze na zewnętrzna karta SD bez ryzyka zaniechania lub kwestii ścieżek ...

public void captureWV() { 
    Picture picture = webview.capturePicture(); 
    Bitmap image = Bitmap.createBitmap(picture.getWidth(),picture.getHeight(), Config.ARGB_8888); 
    Canvas canvas = new Canvas(image); 
    picture.draw(canvas); 
    if (image != null) { 
     ByteArrayOutputStream mByteArrayOS = new ByteArrayOutputStream(); 
     image.compress(Bitmap.CompressFormat.JPEG, 90, mByteArrayOS); 
     try { 
      File sdCard = Environment.getExternalStorageDirectory(); 
      File dir = new File(sdCard.getAbsolutePath()); 
      File file = new File(dir, "filename.jpg"); 
      FileOutputStream fos = new FileOutputStream(file); 
      fos.write(mByteArrayOS.toByteArray()); 
      fos.close(); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

również tutaj jest początkiem mojego główną działalność

public class MainActivity extends Activity { 
private static final String URL = "http://punto.gt"; //your website 
WebView webview; 
// your code here 
} 
+0

Zrzut ekranu jest zawsze czarny. :( –

Powiązane problemy