2016-07-11 27 views
2

Ich habe eine Frage zu Webview.Beim Erfassen von Webview ist Inhalt ohne Anzeige der Ansicht weiß

Es ist meine Quelle und Ergebnis.

private void saveDocumentImage() { 

    WebView wv = arrWebView.get(0); 

    wv.measure(MeasureSpec.makeMeasureSpec(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); 
    int y=wv.getHeight(); 

    Bitmap captureView = Bitmap.createBitmap(wv.getMeasuredWidth(), wv.getMeasuredHeight(), Bitmap.Config.ARGB_8888); 
    wv.layout(0, 0, wv.getMeasuredWidth(), wv.getMeasuredHeight()); 
    Canvas screenShotCanvas = new Canvas(captureView); 
    wv.draw(screenShotCanvas); 


    if (captureView != null) { 
     try { 
      String path = Environment.getExternalStorageDirectory().toString(); 
      OutputStream fOut = null; 
      File file = new File(path, "temp"); 

      if (!file.exists()) 
       file.mkdirs(); 

      fOut = new FileOutputStream(path + "/temp/test_0.jpg"); 
      captureView.compress(Bitmap.CompressFormat.JPEG, 100, fOut); 
      wv.setDrawingCacheEnabled(false); 

     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } 
    } 
    wv.destroyDrawingCache(); 
    captureView.recycle(); 
    captureView=null; 
} 

und hier ist das gleiche wie meins. : https://stackoverflow.com/questions/37023619/capturing-bitmap-android-chromium-webview-returns-content-as-white

Antwort

2

U kann keinen Screenshot der Webansicht und Oberflächenansicht nehmen, weil ihr Inhalt in ihren Halterungen geladen ist und der Halter keine Ansicht ist. Wenn Sie einen Weg finden, dann teilen Sie es. Einmal habe ich ein wenig nachgeforscht und gefunden this Aber ich habe es noch nicht getestet. versuche es, wenn es für dich funktioniert dann Akzeptiere meine Antwort: D. Viel Glück

+1

Vielen Dank für Ihre Absicht. und ich habe es jetzt gelöst. lol Ich brauche die Option 'webview.enableSlowWholeDocumentDraw();' und ich habe es von Android-Entwickler gefunden. und ich habe ein neues Problem. Kannst du mir helfen? Ich möchte die ganze Ansicht zuschneiden, aber es hat nicht funktioniert ... Es ist meine Quelle Ich habe es zum Zuschneiden hinzugefügt. 'bitmap = Bitmap.createBitmap (Bitmap, 0,2000, wv.getMeasuredWidth(), 4000);' und ich hoffe, die Bitmap erscheint von 2000 bis 4000 (x kooperieren.), Aber es erscheint von 0 bis 4000 .... – Adrian

+0

createBitmap (Bitmap Quelle, int x, int y, int Breite, int Höhe) createBitmap (Bitmap , 0,2000, wv.getMeasuredWidth(), 4000); die letzten beiden Parameter entscheiden über die Höhe und Breite der neu erstellten Bitmap. Sie können Ihre Hilfe von http://stackoverflow.com/questions/9747295/crop-particular-part-of-image-in-android erhalten. http: // www.coderzheaven.com/2011/03/15/crop-an-image-in-android/ –

+0

besonders von diesem http://www.coderzheaven.com/2011/03/15/crop-an-image-in -android/ –