android web view setStandardFontFamily设置字体无效的问题.

使用web view 加载一个html页面, html页面的源码片段:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="ja" lang="ja">
<head>
	<link rel="stylesheet" type="text/css" href="../css/vertical_text.css"/>
	<link rel="stylesheet" type="text/css" href="../css/vertical_font.css"/>
	<link rel="stylesheet" type="text/css" href="../css/vertical.css"/>
	<title>こころ</title>

</head>

我在web view的settings中设置显示的字体

settings.setStandardFontFamily("NotoSerifCJKjp-Regular");    结果这个设置无效.

后来分析平台代码发现了问题:frameworks\base\data\fonts\ fonts.xml

    <family lang="zh-Hant">
        <font weight="400" style="normal" index="3">NotoSansCJK-Regular.ttc</font>
    </family>
    <family lang="ja">
        <font weight="400" style="normal" index="0">NotoSansCJK-Regular.ttc</font>
    </family>
    <family lang="ko">
        <font weight="400" style="normal" index="1">NotoSansCJK-Regular.ttc</font>
    </family>

请注意HTML源码中的xml:lang="ja" lang="ja" 和系统配置中的 <family lang="ja">, 这样的话, 无论你web view中如何配置字体,

都会使用系统配置的NotoSansCJK-Regular.ttc字体

我的修改方法: frameworks\base\data\fonts\ fonts.xml中去掉这一行的配置, 

然后在web view 的app中动态运行

settings.setStandardFontFamily("NotoSansCJKjp-Regular");  

字体也就动态改变.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值