当前位置:操作系统 > 安卓/Android >>

Android获取webView快照与屏幕截屏的方法

前段时间做的一个书店项目其阅读模块中用到了WebView + js,今天把WebView这块用到的几个特性记录下。
 
其主要用到了webView的快照与屏幕的截屏。部分代码如下:
 
[html] 
  /**  
    * 截取webView可视区域的截图  
    * @param webView 前提:WebView要设置webView.setDrawingCacheEnabled(true);  
    * @return  
    */  
private Bitmap captureWebViewVisibleSize(WebView webView){  
    Bitmap bmp = webView.getDrawingCache();  
    return bmp;  
}  
 
    /**
     * 截取webView可视区域的截图
     * @param webView 前提:WebView要设置webView.setDrawingCacheEnabled(true);
     * @return
     */
private Bitmap captureWebViewVisibleSize(WebView webView){
Bitmap bmp = webView.getDrawingCache();
return bmp;
}
 这个方法只截取屏幕中显示出来部分的webView画面,未显示的部分不会被截取。
 
[html] 
/**  
 * 截取webView快照(webView加载的整个内容的大小)  
 * @param webView  
 * @return  
 */  
private Bitmap captureWebView(WebView webView){  
    Picture snapShot = webView.capturePicture();  
      
    Bitmap bmp = Bitmap.createBitmap(snapShot.getWidth(),snapShot.getHeight(), Bitmap.Config.ARGB_8888);  
    Canvas canvas = new Canvas(bmp);  
    snapShot.draw(canvas);  
    return bmp;  
}  
 
/**
* 截取webView快照(webView加载的整个内容的大小)
* @param webView
* @return
*/  www.zzzyk.com
private Bitmap captureWebView(WebView webView){
Picture snapShot = webView.capturePicture();
 
Bitmap bmp = Bitmap.createBitmap(snapShot.getWidth(),snapShot.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);
snapShot.draw(canvas);
return bmp;
}
这个看好与上一个是不同的,他是截取webView的整个页面,未显示的也会被截取。
 
[html]  
/**  
 * 截屏  
 * @param context  
 * @return  
 */  
   private Bitmap captureScreen(Activity context){  
     View cv = context.getWindow().getDecorView();  
     Bitmap bmp = Bitmap.createBitmap(cv.getWidth(), cv.getHeight(),Config.ARGB_8888);  
     Canvas canvas = new Canvas(bmp);  
     cv.draw(canvas);  
     return bmp;  
 
/**
* 截屏
* @param context
* @return
*/
    private Bitmap captureScreen(Activity context){
      View cv = context.getWindow().getDecorView();
      Bitmap bmp = Bitmap.createBitmap(cv.getWidth(), cv.getHeight(),Config.ARGB_8888);
      Canvas canvas = new Canvas(bmp);
      cv.draw(canvas);
      return bmp;[html] view plaincopyprint?}  
 
    }
这个不用多说大家都明白就是手机屏幕的快照~~
 
补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,