2013-03-12 73 views
3

我試圖在android/phonegap應用上實現css3頁面翻轉效果。爲此,我需要將當前的webview動態保存爲png或jpeg,以便可以將其加載到頁面中的div中。我注意到Android的文檔中的圖片類,但我不確定是否可以轉換和保存。這可以通過JS完成嗎?有任何想法嗎?捕獲android的webview圖像並保存爲png/jpeg

感謝

回答

0

最簡單的方法(據我所知)捕獲View作爲圖像是創建一個新的Bitmap和新Canvas。然後,只需要您的WebView在您自己的畫布上繪製自己,而不是活動的默認畫布。

僞代碼:下面的代碼

Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); 
Canvas canvas = new Canvas(bitmap); 
myWebView.draw(canvas); 
//save your bitmap, do whatever you need 
+0

好吧,我會給你一個鏡頭。你知道我可以在JavaScript中實現嗎?會寫一個java類,並使用appView.addJavascriptInterface()的工作? – user1776524 2013-03-12 00:59:48

+0

準確地說,您需要回撥到Java土地才能完成此項任務。 – wsanville 2013-03-12 01:00:47

5

嘗試拍攝的WebView並保存JPG到SD卡。

webview.setWebViewClient(new WebViewClient() { 

    @Override 
    public void onPageFinished(WebView view, String url) { 
     Picture picture = view.capturePicture(); 
     Bitmap b = Bitmap.createBitmap(
      picture.getWidth(), picture.getHeight(), Bitmap.Config.ARGB_8888); 
     Canvas c = new Canvas(b); 
     picture.draw(c); 

     FileOutputStream fos = null; 
     try { 
      fos = new FileOutputStream("/sdcard/" + "page.jpg"); 
      if (fos != null) { 
       b.compress(Bitmap.CompressFormat.JPEG, 90, fos); 
       fos.close(); 
      } 
     } 
     catch(Exception e) { 
      System.out.println("-----error--"+e); 
     } 
    } 
}); 

webview.loadUrl("http://stackoverflow.com/questions/15351298/capturing-android-webview-image-and-saving-to-png-jpeg");