android加载字体文件路径,android webView中未加载资源字体

本文介绍如何正确设置@font-face在HTML/CSS中引用字体,包括指定相对路径,并确保目标设备支持阿拉伯语脚本。提供了一个实例,展示了如何通过AssetManager加载本地字体到WebView中,以实现代理字体显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

>首先,字体路径应该与您的HTML / CSS文件相关.

所以,而不是这个:

@font-face { font-family: 'Persian'; src: url('file:///android_asset/fonts/b_yekan.ttf'); }

使用这样的东西:

@font-face { font-family: 'Persian'; src: url('fonts/b_yekan.ttf'); }

>其次,您必须确保您要测试的目标实际上支持阿拉伯语脚本.

有了这个,下面我提供一个工作的例子.

资产/ about_us.html:

/p>

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

@font-face { font-family: 'B Homa'; src: url('fonts/BHOMA.TTF');}

@font-face { font-family: 'B Lotus'; src: url('fonts/BLOTUS.TTF');}

@font-face { font-family: 'B Lotus Bold'; src: url('fonts/BLOTUSBD.TTF');}

B Homa: مخصص

B Lotus: مخصص

B Lotus Bold: مخصص

BHOMA.TTF,BLOTUS.TTF和BLOTUSBD.TTF从bornaray.com下载并存储在assets / fonts /文件夹中.

loadToWebView(),它是Fragment的一部分,因此getActivity().getAssets():

private void loadToWebView() {

AssetManager assetManager = getActivity().getAssets();

try {

InputStream input = assetManager.open("about_us.html");

byte[] buffer = new byte[input.available()];

input.read(buffer);

input.close();

mWebView.loadDataWithBaseURL("file:///android_asset/",

new String(buffer), "text/html", "UTF-8", null);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

结果如下:

希望这可以帮助.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值