2014-01-07 2 views
1

WebView의 전체 콘텐츠 스냅 샷을 원합니다. 그러나 반환 된 이미지는 항상 비어 있습니다. 당신이 한 번 봐서 내가 틀린 곳을 말해 줄 수 있어요?스냅 샷 webview 반환 빈 이미지

지금은 함수가 현재 사용되지 않으므로 capturePicture 함수를 사용하지 마십시오.

일부 코드

public class WebViewActivity extends Activity { 

     private static WebView webView; 

     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.webview); 

      webView = (WebView) findViewById(R.id.webView1); 
    webView.loadUrl("http://developer.android.com/training/basics/firstapp/creating-project.html"); 

    webView.setWebViewClient(new WebViewClient() { 

     public void onPageFinished(WebView view, String url) { 
      // do your stuff here 
      webView.measure(MeasureSpec.makeMeasureSpec(
        MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED), 
        MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); 
      webView.layout(0, 0, webView.getMeasuredWidth(), 
        webView.getMeasuredHeight()); 
      webView.setDrawingCacheEnabled(true); 
      webView.buildDrawingCache(); 
      Bitmap bm = Bitmap.createBitmap(webView.getMeasuredWidth(), 
        webView.getMeasuredHeight(), Bitmap.Config.ARGB_8888); 

      Canvas bigcanvas = new Canvas(bm); 
      Paint paint = new Paint(); 
      int iHeight = bm.getHeight(); 
      bigcanvas.drawBitmap(bm, 0, iHeight, paint); 
      if (bm != null) { 
       try { 
        String path = Environment.getExternalStorageDirectory() 
          .toString(); 
        OutputStream fOut = null; 
        File file = new File(path, "/aaaa.png"); 
        fOut = new FileOutputStream(file); 

        bm.compress(Bitmap.CompressFormat.PNG, 100, fOut); 
        fOut.flush(); 
        fOut.close(); 
        bm.recycle(); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     } 
    }); 
} 

<?xml version="1.0" encoding="utf-8"?> 
<WebView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/webView1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
/> 

가 대단히 감사합니다 layout.xml!

답변

0

솔루션을 발견했습니다. 이것 좀보세요.

API 19에서 사용되지 않는 capturePicture functon 대신 onDraw를 사용했습니다. 더 나은 해결책이 있다면 알려 주시면 감사하겠습니다. 감사!

Which can replace capturePicture function