WebSettings.setTextZoom不起作用的原因

需求是基于Android原生浏览器开发一个浏览器,其中有字号调整这个功能,毫无疑问,这个功能是通过WebSettings.setTextZoom来实现的,然而实际调试的时候发现,大多数网页的文字大小都没有变化。
→ 为了排查原因,首先上网查了一圈,无果。
→ 对比小米浏览器,发现能实现这个功能,难道是自己去实现的?拿来反编译,在一堆代码中发现了v.d(WebView paramWebView)方法,其中有这两句:

localWebSettings.setTextZoom(u());
localMiuiSettings.setForceEnableZoom(t());

于是想当然的认为setForceEnableZoom方法就是小米自己写的字号调整方法,深入这个方法发现最后定向到一个native方法,那这没法整啦,怎么办?
→ 又拿了几个大厂的浏览器看了下,都能实现这个功能,反编译了好几个浏览器,诸如猎豹、QQ、UC、夸客,发现光是classes.dex文件都有好几个,而且代码实在太多,找不到字号调整这个功能相关的代码。再找了个Via浏览器来反编译,这个浏览器体积够小,总算找到相关代码,然而却发现,这个功能的实现仅靠setTextZoom方法而已。看到这里,我估计我排查的方向出错了,小米的那个方法跟字号调整估计没什么关系。
→ 回到项目源代码,想起浏览器在初始化的时候,WebSettings会进行一大堆的设置,莫非是产生了冲突?经过几轮的注释调试之后,终于发现了原因:
webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING)
改成webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL)就好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值