让 WebView 使用 SD 卡上存在的字体

发布于 2024-10-31 06:00:12 字数 342 浏览 2 评论 0原文

Android 的日文字体太糟糕了。免费的 Mincho 字体会好得多。许多人使用我们的(开源)应用程序来学习日语单词,因此我们希望该应用程序下载并使用此字体。

现有的免费 Android 应用 已经这样做,但我不知道怎么做。

下载字体到SD卡没问题,但是如何让WebView(或者WebView内的一些span)使用下载的字体而不是默认字体呢?

Android's Japanese font is horrible. The free Mincho font would be much better. Many people use our (open source) app to learn Japanese words, so we would like the app to download and use this font.

An existing free Android app is already doing it, but I have no idea how.

Downloading the font to the SD card is no problem, but how to make the WebView (or some spans within the WebView) use the downloaded font instead of the default font?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

人间☆小暴躁 2024-11-07 06:00:12

WebView 用于在应用程序内加载网页。我猜你可能弄错了。
如果您想将外部字体加载到您的应用程序中,您可以使用该代码片段

Typeface tf = Typeface.createFromAsset(getApplicationContext().getAssets()
                    , "fonts/fontname.ttf");

并将它们用于任何文本视图以在应用程序中显示它。

WebView is used to load a web page inside a app.. Probably you got it wrong is my guess.
If you want to load external font into your app you can make use of the snippet

Typeface tf = Typeface.createFromAsset(getApplicationContext().getAssets()
                    , "fonts/fontname.ttf");

and use them for any textview to display it in app.

忱杏 2024-11-07 06:00:12

解决方案是在发送到 WebView 的 HTML 中插入 CSS 指令。该 CSS 指令通过“file:”协议引用字体文件。

有关开源代码示例和更详细的说明,请参阅我们如何实现它:
https://github.com/nicolas-raoul/Anki-Android/commit/6225e524be4a77858e08389624d2f4ae 8740261b

The solution was to insert a CSS directive into the HTML sent to the WebView. This CSS directive references the font file via the "file:" protocol.

For an open source code sample and a more detailed explanation, see how we implemented it:
https://github.com/nicolas-raoul/Anki-Android/commit/6225e524be4a77858e08389624d2f4ae8740261b

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文