2016-07-11 1 views
2

У меня есть вопрос о Webview.При захвате веб-представления содержимое без отображения отображается белым

Это мой источник и результат.

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; 
} 

и здесь такой же, как у меня. : https://stackoverflow.com/questions/37023619/capturing-bitmap-android-chromium-webview-returns-content-as-white

ответ

2

U не может снимать снимок экрана с веб-представления и обзора поверхности, поскольку их содержимое загружается в их держатели и держатель не является видом. Если вы найдете способ, поделитесь им. Как только я немного поработал над этим и нашел this Но я еще не тестировал его. попробуйте, если это сработает для вас, тогда примите мой ответ: D. best Удачи

+1

Спасибо за ур намерения. и я решил это сейчас. lol Мне нужно указать параметр 'webview.enableSlowWholeDocumentDraw();' и я нашел его у разработчика Android. и у меня возникла новая проблема. LOL может помочь мне ?? Я хочу обрезать весь вид, но он не работал ... Это мой источник Я добавил его для обрезки. 'bitmap = Bitmap.createBitmap (растровое изображение, 0,2000, wv.getMeasuredWidth(), 4000); , и я надеюсь, что растровое изображение появляется с 2000 по 4000 (x cooper.), Но оно появляется от 0 до 4000 .... – Adrian

+0

createBitmap (источник битовой карты, int x, int y, int width, int height) createBitmap (растровое изображение , 0,2000, wv.getMeasuredWidth(), 4000); последние два параметра будут определять высоту и ширину вновь созданного растрового изображения u, чтобы получить вашу помощь от http://stackoverflow.com/questions/9747295/crop-particular-part-of-image-in-android http: // www.coderzheaven.com/2011/03/15/crop-an-image-in-android/ –

+0

особенно из этого http://www.coderzheaven.com/2011/03/15/crop-an-image-in -android/ –