android-可下载的字体-无法下载某些Google字体

android-可下载的字体-无法下载某些Google字体,第1张

概述我正在玩Downloadablefontsapi.我下载了Googlesampleapplication,还将代码合并到了我的项目中.两者都可以成功运行,但是某些字体始终无法从我的应用程序和示例应用程序中下载.我使用FontsContractCompat.requestFont并使用原因1回调了onTypefaceRequestFailed(int原因).文档说

我正在玩Downloadable fonts api.我下载了Google sample application,还将代码合并到了我的项目中.两者都可以成功运行,但是某些字体始终无法从我的应用程序和示例应用程序中下载.

我使用FontsContractCompat.requestFont并使用原因1回调了onTypefaceRequestFailed(int原因).文档说这意味着“ FAIL_REASON_Font_NOT_FOUND”.
我认为这些字体应该存在是因为:1)它们出现在示例应用程序随附的xml文件中; 2)它们出现在online list of Google Fonts中; 3)它们从开发者网络API(https://www.GoogleAPIs)返回. com / webFonts / v1 / webFonts?key =)

这是失败字体的列表:
 吴哥
 Archivo
 尽快浓缩
 Baloo Bhaijaan
 Baloo Tammudu
 马德望
 巴永
 贝尔费尔
 BioRhyme扩展
 博克
 冷凝舱
 洲菲洛蒙一号
 晨拉
 内容
 丹格雷克
 编码Sans
 编码Sans压缩
 编码Sans展开
 编码Sans Semi Condensed
 编码Sans Semi展开
 快手
 福斯蒂纳
 写意
 哈努曼
 高棉语
 库伦
 自由条形码128
 自由条形码128文本
 自由条形码39
 libre barcode 39扩展
 libre barcode 39扩展文本
 自由条形码39文字
 真田
 手册
 金属
 ul
 穆尔帕利
 木塔
 Mukta Mahee
 Mukta Malar
 Nokora
 打开Sans压缩
 前言
 浓缩的Roboto
 赛拉
 塞拉浓缩
 赛拉特级浓缩
 赛拉半浓缩
 塞奇威克大街
 塞奇威克大道展示
 暹粒市
 w
 塔普罗姆
 Ubuntu压缩
 Zilla平板
 Zilla平板亮点

解决方法:

绝对很奇怪.我观察到,其中许多(但不是全部)字体没有“ latin”或“ latin-ext”子集,因此这似乎是一种自动过滤它们的方法.我整理了一个小的python2脚本,该脚本向API询问整个​​字体列表,然后过滤它们的“拉丁”并输出剩下的内容作为新的字体系列资源文件,您可以将其重定向到family_names.xml.

用法:FontList.py< API_KEY>

#!/usr/bin/python# FontList.py by fat-tire## Collects Google provIDer latin & latin-ext Font familIEs and creates a replacement for# https://github.com/Googlesamples/androID-DownloadableFonts/blob/master/app/src/main/res/values/family_names.xml## See https://developers.Google.com/Fonts/docs/developer_API for more info on the Google Fonts API## Usage:     FontList.py <API_KEY> > family_names.xmlimport sys, urllib2, Jsonif len(sys.argv) != 2:    print "Usage:"    print "  FontList.py <API_KEY> > family_names.xml"    print "No Google Fonts API key?  Get one at https://developers.Google.com/Fonts/docs/developer_API#APIKey"    sys.exit(0)APIKEY=sys.argv[1]url="https://www.GoogleAPIs.com/webFonts/v1/webFonts?key="opener = urllib2.build_opener()try:    request = urllib2.Request(url + APIKEY)    conn = opener.open(request)except Exception, e:    print "WhoopsIE.  Got a " + str(e.code) + " " + str(e.reason) + " error.  You sure that API is legit?"    sys.exit(1)data = Json.loads(conn.read())count = 0items = data["items"]print "<?xml version=\"1.0\" enCoding=\"utf-8\"?>"print "<!-- Collected from " + url+APIKEY + " -->"print """<resources>    <string-array name="family_names">"""for key in items:    if "latin" in key["subsets"]:        print " "*10 + "<item>" + key["family"] + "</item>"        count = count + 1print """    <!--Total:  """ + str(count) + """-->    </array></resources>"""sys.exit(0)

该脚本输出一个有趣的family_names.xml.如果将其与one provided by google进行比较,它将使问题中列出的大多数字体变黑.但是并不能全部使用,包括“ Zilla”,“ Ubuntu”,“ barcode”和“ Encode”字体.也许这些字体也有一些共同点,可以用来进一步过滤列表?

有趣的是,生成的列表还包括不在github列表中的新字体,包括:

> VolKorn SC
>光谱
>光谱SC
>塞奇威克大街
> Sedgewick Ave显示屏

….“ barlow”,“ Bellefair”等.而且其中某些字体似乎确实可以在AndroID上使用.

所以我猜该演示文件中的列表很旧.可能是由于许可问题或技术问题,因此有必要切换列表.

无论如何,都应该提交一个具有更新的更新列表的拉取请求,以删除不再提供的字体,并添加经过API测试并已知可与提供程序一起使用的字体.

总结

以上是内存溢出为你收集整理的android-可下载的字体-无法下载某些Google字体全部内容,希望文章能够帮你解决android-可下载的字体-无法下载某些Google字体所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1080340.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存