2013-03-12 8 views
3

Я пытаюсь реализовать эффект flip-страницы css3 в приложении Android и phonegap. Для этого мне нужно динамически сохранить текущий веб-просмотр в png или jpeg, чтобы его можно было загрузить в div на странице flip html. Я заметил класс Picture в документах android, но я не уверен, что это можно преобразовать и сохранить. Можно ли это сделать через JS? Есть идеи?Захват изображения в андроиде и сохранение в 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

+0

Точно, вам нужно будет перезвонить на Землю Java, чтобы это сделать. – wsanville

5

Try следующий код для захвата WebView и сохранены в формате JPG на SDCard.

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"); 
Смежные вопросы