gpt4 book ai didi

android - 可下载字体未正确缓存

转载 作者:行者123 更新时间:2023-11-29 16:46:16 25 4
gpt4 key购买 nike

根据 API Guide on Android Developers,我的应用程序通过 Support Library 27.0.2 使用 Android Downloadable Fonts 在 XML 上设置自定义字体.除了第一次在屏幕上绘制每个字体系列外,这些字体都会正常应用。

例如:如果我打开 ActivityA,它的 Toolbar 将显示 Tab1 标题和默认的 Roboto,但 Tab2Tab3 将使用我的自定义字体。第二次打开 ActivityA(没有关闭应用程序)时,问题没有发生,所有选项卡都将使用自定义字体。除了选项卡标题,我还注意到工具栏上的问题。同样的情况:第一次打开后,字体被正确应用。

res/values/font_certs.xmlres/font/font.xml 文件由 Android Studio 生成,就像文档中提供的一样:

<font-family xmlns:app="http://schemas.android.com/apk/res-auto"
app:fontProviderAuthority="com.google.android.gms.fonts"
app:fontProviderCerts="@array/com_google_android_gms_fonts_certs"
app:fontProviderPackage="com.google.android.gms"
app:fontProviderQuery="Lato" />

这是 list :

<application ...>
<meta-data
android:name="preloaded_fonts"
android:resource="@array/preloaded_fonts" />
</application>

res/values/arrays.xml:

<resources>
<array name="preloaded_fonts">
<item>@font/lato</item>
<item>@font/lato_bold</item>
<item>@font/lato_light</item>
<item>@font/raleway</item>
<item>@font/raleway_semibold</item>
</array>
</resources>

AppBarLayout 上使用以下主题应用字体:

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" >
<item name="android:fontFamily">@font/raleway</item>
<item name="android:gravity">center_horizontal</item>
</style>

项目使用以下版本:

minSdkVersion = 19
targetSdkVersion = 26
compileSdkVersion = 26
buildToolsVersion = '27.0.0'
playServicesVersion = '11.6.0'

使用带有 API 21 的 AVD 和运行 API 27 的真实 Nexus 6P 重现了该问题。似乎字体缓存存在问题。我该如何解决或更好地调查此问题?

最佳答案

到目前为止,除了使用离线字体外,我还没有找到解决问题的方法。在这种情况下,我将 font.xml 文件替换为从 Google Fonts 下载的 font.ttf 文件,并删除了 list 中的 preloaded_fonts 元标记.这导致 APK 大小增加了大约 200KB(对于 5 种字体)。

关于android - 可下载字体未正确缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48022404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com