webView放弃capture()截图的替代方法


float scale = webView.getScale();
height = (int) (webView.getContentHeight() * scale + 0.5);
bitmap = Bitmap.createBitmap(webView.getWidth(), height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
webView.draw(canvas);

之后使用 IO 将bitmap存到sd卡即可

若不想使用过期方法webView.getScale() , 可以直接读取设备的dpr代替。

注意:Android OS 5.0 以上的设备,如果是在activity里有webView,
需要调用一个静态方法:WebView.enableSlowWholeDocumentDraw();

不然,webView.draw(canvas) 只能截取到可视区域的内容
时间: 2024-10-06 20:12:13

webView放弃capture()截图的替代方法的相关文章

AndroidOrientation Sensor(方向传感器),新的替代方法详解(安卓官方提供)

本文将带大家去解读下安卓官方关于方向传感器数据,提供的新方法.熟悉手机传感器开发的朋友对这段代码一定不会陌生吧. sm.registerListener(this, sm.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_NORMAL); sm.registerListener(this, sm.getDefaultSensor(Sensor.TYPE_GRAVITY), 在高版本的安卓中,Sensor.T

WebView组件学习以及WebViewClient 的方法解释

在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件.利用WebView组件就可以做出款完全属于自己的手机浏览器,就想在windows上用IE内核做一个浏览器一样! 1.因为是浏览器,访问网络是必须的.所以,AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not available错误. 2.设置浏览器是否运行网页上的javascript代码:

JSP中 request.getRealPath("/xx/yy") 方法提示已经过时的替代方法

我们的JSP项目在上传文件时通常都需要获取目录在服务器上的绝对路径,request.getRealPath()方法显示已经过时,但是还是有替代方法的. HttpSession session = request.getSession(true);  //获取session // String path = request.getRealPath("/data/userfile/image");  //此方法已经过时 String path = session.getServletCon

全局监听SCREEN_ON和SCREEN_OFF的替代方法--监听屏幕解锁事件

在做一个程序的时候,需要时刻保持某一服务是启动的,因此想到了通过监听屏幕SCREEN_ON和SCREEN_OFF这两个action.奇怪的是,这两个action只能通过代码的形式注册,才能被监听到,使用AndroidManifest.xml 完全监听不到.查了一下,发现这是PowerManager那边在发这个广播的时候,做了限制,限制只能有register到代码中的receiver才能接收. view plain private void registerScreenActionReceiver

编写高质量代码改善C#程序的157个建议[为泛型指定初始值、使用委托声明、使用Lambda替代方法和匿名方法]

前言 泛型并不是C#语言一开始就带有的特性,而是在FCL2.0之后实现的新功能.基于泛型,我们得以将类型参数化,以便更大范围地进行代码复用.同时,它减少了泛型类及泛型方法中的转型,确保了类型安全.委托本身是一种引用类型,它保存的也是托管堆中对象的引用,只不过这个引用比较特殊,它是对方法的引用.事件本身也是委托,它是委托组,C#中提供了关键字event来对事件进行特别区分.一旦我们开始编写稍微复杂的C#代码,就肯定离不开泛型.委托和事件.本章将针对这三个方面进行说明. 本文已更新至http://w

Android中使用代码截图的各种方法总结

1,基于Android SDK的截屏方法 (1)主要就是利用SDK提供的View.getDrawingCache()方法.网上已经有很多的实例了.首先创建一个android project,然后进行Layout,画一个按键(res/layout/main.xml): <?xmlversion="1.0"encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android

Android中通过WebView控件实现与JavaScript方法相互调用的地图应用

在Android中通过WebView控件,可以实现要加载的页面与Android方法相互调用,我们要实现WebView中的addJavascriptInterface方法,这样html才能调用android方法,在这里我个人觉得有点和DWR相似. 为了让大家容易理解,我写了一个简单的Demo,具体步骤如下: 第一步:新建一个Android工程,命名为WebViewDemo(这里我在assets里定义了一个html页面). 第二步:修改main.xml布局文件,增加了一个WebView控件还有But

Android中getDrawable和getColor过时的替代方法

版权声明:本文为博主原创文章,未经博主允许不得转载. 前言 Android SDK 升级到 23 之后,getDrawable和getColor方法提示过时. 解决方案 getResources().getColor 替换成 ContextCompat.getColor getResources().getDrawable 替换成 ContextCompat.getDrawable 例子如下: int colorInt = getResources().getColor(R.color.colo

request.getRealPath()的替代方法

request.getSession().getServletContect().getRealPath()得到站点的绝对地址 在Servlet 和Struts中还可以用 this.getServletContect().getRealPath("/"); this.getServlet().getServletContect().getRealPath("/"); ServletActionContext.getServletContext().getRealPa