Android:WebView,外部网站和CSS使用自定义字体(Arial)
是否可以在我的Android应用程序中包含一个TTF字体Arial,供外部加载网页的CSS使用 例如,假设我的网站有一个CSS文件,其中包含以下内容:Android:WebView,外部网站和CSS使用自定义字体(Arial),android,css,fonts,android-webview,Android,Css,Fonts,Android Webview,是否可以在我的Android应用程序中包含一个TTF字体Arial,供外部加载网页的CSS使用 例如,假设我的网站有一个CSS文件,其中包含以下内容: @font-face { font-family: "CustomArial"; src: url('Arial.ttf'); } h1 { font-family: 'CustomArial', serif; } 我还尝试将字体的url src设置为以下值,但它们都不起作用: /mnt/sdcard/Ari
@font-face {
font-family: "CustomArial";
src: url('Arial.ttf');
}
h1 {
font-family: 'CustomArial', serif;
}
我还尝试将字体的url src设置为以下值,但它们都不起作用:
/mnt/sdcard/Arial.ttf
file://mnt/sdcard/Arial.ttf
我知道,如果Arial.ttf文件与服务器上的CSS文件位于同一目录中,那么这是可行的,但我想做的是能够使用我的应用程序的/assets文件夹中的Arial.ttf,或者我将它放在SD卡上的某个地方。原因是Arial.ttf文件为775kb,用户需要在呈现页面之前下载该文件
这可能吗?我知道,如果加载到WebView中的HTML位于本地,我可以通过WebView.loadData加载它,但我需要使用WebView.loadUrl
任何想法/帮助都会很好 1将字体放在项目的资产文件夹中,而不是SD卡上。在项目中创建名为“资产”的文件夹 2在@font-face中使用
src:url'file:///android_asset/Arial.ttf'; 1将字体放在项目的资产文件夹中,而不是SD卡上。在项目中创建名为“资产”的文件夹 2在@font-face中使用
src:url'file:///android_asset/Arial.ttf'; 这不管用。我尝试了每一次迭代,每一个可能的文件路径,但都不起作用。如果我将字体放在assets文件夹中,并从assets文件夹中的HTML文件中引用它,我就能够让它工作,但我需要在外部加载的网页上以某种方式引用本地TTF字体。如果将CSS文件放在assets文件夹中,定义字体,并将该CSS文件添加到WebView中,会怎么样?url中的路径是相对于CSS文件而不是HTML文件的。如何将CSS文件添加到WebView?通过loadData?@hooked82我对安卓开发一无所知,但我认为它是:。然后,在css中,引用相对于样式表目录的字体。这不起作用。我尝试了每一次迭代,每一个可能的文件路径,但都不起作用。如果我将字体放在assets文件夹中,并从assets文件夹中的HTML文件中引用它,我就能够让它工作,但我需要在外部加载的网页上以某种方式引用本地TTF字体。如果将CSS文件放在assets文件夹中,定义字体,并将该CSS文件添加到WebView中,会怎么样?url中的路径是相对于CSS文件而不是HTML文件的。如何将CSS文件添加到WebView?通过loadData?@hooked82我对安卓开发一无所知,但我认为它是:。然后,在css中,引用相对于样式表目录的字体。正如您所知,在apk中嵌入Arial或将其托管在web服务器上进行重新分发是不合法的,除非您有许可证。字体授权是Android只包括Roboto和Droid字体的原因之一。有许多开源字体接近于Arial。查看Bitstream Vera字体。谢谢你的提醒,但我知道这一点。嘿@hooked82这篇文章已经发布了很长时间了,但是你解决了这个问题吗?正如你所知,除非你有许可证,否则在apk中嵌入Arial或将其托管在web服务器上进行重新分发是不合法的。字体授权是Android只包括Roboto和Droid字体的原因之一。有许多开源字体接近于Arial。查看Bitstream Vera字体。谢谢你的提醒,但我知道这一点。嘿@hooked82这篇文章已经发布了很长时间,但是你解决了这个问题吗?