Android浏览器多窗口webview界面截屏心得
来源:互联网 发布:青岛知行国际劳务外派 编辑:程序博客网 时间:2024/05/16 09:27
做Android浏览器多窗口的时候,需要使用到浏览器的webview快照,当前有三种方法,都尝试过,对第二种方法做了一点改进,整理说一下他们各自的优势:
方法一:使用该方法截取webview可视部分的截图,如使用当前方法,会截取的是最开始加载的界面,当你的界面刷新后,并不会截取新的界面,而是使用老的界面,所以效果不太好;
/** * 截取webView可视区域的截图
* @param webView 前提:WebView要设置
webView.setDrawingCacheEnabled(true);
* @return
*/
private Bitmap captureWebViewVisibleSize(WebView webView){
Bitmap bmp = webView.getDrawingCache();
return bmp;
}
方法二:截取整个webview的界面,包含未显示的部分;这部分会截取整个webview的大小,由于我模拟的是ipad的模式,所以webview就会很长,而浏览器又是内存大户,故,当遇到截屏的webivew太长的时候,截取出来的bitmap太大,遇到配置低的设备,总是出现oom,后来,对这个方法进行了改造,只是截取显示的内容,见下面方法三;
/**
* 截取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;
}
方法三:对方法二的改造,通过获取pictrue的宽,算取截屏的高,从而截取只是显示出来的部分,我使用的这个方法:
/**
* 截取webView快照(webView加载的整个内容的显示部分大小)
* @param webView
* @return
*/
private Bitmap captureWebView(WebView webView){
Picture snapShot = webView.capturePicture();
Bitmap bmp = null;
int width = picture.getWidth();
int height = (int) (width * 9 / 16);//默认16:9的设备比例,算出截屏的高
if (width > 0 && height > 0)
{
bmp = Bitmap.createBitmap(width ,height , Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);
snapShot.draw(canvas);
}
return bmp;
}
方法四:方法四就是Android的截屏操作了,没有使用的原因是,我的浏览器界面在webview上还有控件,使用该方法会把多余的非webview的部分截取出来,故没有使用该方法:
/**
* 截屏
* @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;
}
- Android浏览器多窗口webview界面截屏心得
- 仿UC浏览器多窗口管理界面
- android浏览器研究-多窗口
- android界面加载webview
- Android 浏览器webView
- Android-WebView-简易浏览器
- Android 界面心得
- HTML5+规范:Webview(管理应用窗口界面)
- html5plus Webview模块管理应用窗口界面
- mui webview 界面操作、窗口层关系
- Android webview 完美浏览器解决方案 webview
- android WebView界面切换效果
- android 创建webview悬浮窗口
- Android《内嵌浏览器-WebView》
- android --webview控件 浏览器制作
- Android 内置浏览器之webview
- Android 一个Activity中实现多窗口WebView
- Android 浏览网页:WebView 嵌入浏览器(浏览历史返回、自定义加载失败界面、支持缩放、获取标题栏)
- 银联在线Java接口开发
- java设计模式-观察者模式
- 五TCP窗口与拥塞处理
- 正则表达式 语法
- JAVA-找不到或无法加载主类
- Android浏览器多窗口webview界面截屏心得
- android 流行的开源框架
- windows中Django安装教程
- Swift中的数组和字典
- UIButton的详细使用
- [leetcode] 355. Design Twitter
- java并发编程(七)--使用synchronized获取互斥锁的几点说明
- 使用usb术语详解
- PopupWindow踩坑解决方案