抓取Android(安卓)WebView截屏
16lz
2021-01-26
一般使用setDrawingCacheEnabled(true);和getDrawingCache()方法均可以得到视图的截屏。
如果WebView不显示且在背后加载数据的情况下我需要截屏,那么应该怎么做呢。
设置WebView的PictureListener的监听器,然会画到一个Bitmap即可:
/** * 抓取WEB界面的截屏 * @param WebView * @param containerWidth 截屏宽度,也就放置WebView的宽度 * @param containerHeight 截屏高度,也就放置WebView的高度 * @param baseUrl Base Url * @param content 加载的内容 */public Bitmap catchWebScreenshot(final WebView w,final int containerWidth,final int containerHeight, final String baseUrl,final String content) { final Bitmap b = Bitmap.createBitmap(containerWidth, containerHeight, Bitmap.Config.ARGB_8888); w.post(new Runnable() { public void run() { w.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { } }); w.setPictureListener(new PictureListener() { public void onNewPicture(WebView view, Picture picture) { final Canvas c = new Canvas(b); view.draw(c); w.setPictureListener(null); } }); w.layout(0, 0, containerWidth,containerHeight); w.loadUrl(baseUrl);// w.loadDataWithBaseURL(baseUrl, content, "text/html", "UTF-8", null); }}); return b;}
更多相关文章
- 图片加载框架(一):Glide
- Android(安卓)studio 原生自带下拉加载控件SwipeRefreshLayout使
- Android的webview加载本地html、本apk内html和远程URL (简单明了
- MyAdapter
- Android(安卓)获取控件高度宽度三种方法,防止0的出现~~~~赞
- HorizontalListView(包含setSelection功能)
- Eclipse 插件安装方法和插件加载失败解决办法
- Android应用开发提高系列(4)
- Android使用WebView加载网页及数据__2020.01.03