草庐IT

android - 可下载字体 - 无法下载某些谷歌字体

coder 2023-12-20 原文

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

我使用 FontsContractCompat.requestFont 并获得对 onTypefaceRequestFailed(int reason) 的回调,原因为 1。文档说这意味着“FAIL_REASON_FONT_NOT_FOUND”。 我假设这些字体应该存在,因为:1) 它们出现在示例应用程序附带的 xml 文件中,2) 它们出现在 online list of Google Fonts 中。 , 和 3) 它们从开发人员网络 API (https://www.googleapis.com/webfonts/v1/webfonts?key=)

返回

这是失败字体的列表: 吴哥 存档 尽快浓缩 Baloo Bhaijaan 巴鲁塔穆杜 马德望 巴戎 贝尔费尔 BioRhyme 扩展 波哥 精简舱 洲菲洛梅一号 真腊 内容 当列克 编码 Sans 编码 Sans Condensed 编码 Sans 展开 编码 Sans 半浓缩 Encode Sans Semi 展开 快手 福斯蒂娜 写意 哈努曼 高棉语 库伦 自由条形码 128 自由条形码 128 文本 自由条形码 39 自由条形码 39 扩展 Libre Barcode 39 扩展文本 自由条形码 39 文本 马达 手册 金属 模具 穆尔帕利 穆克塔 穆克塔马希 穆克塔马拉 野仓 打开无压缩 预闻 机器人浓缩 纱良 Saira浓缩 Saira 超浓缩 Saira半浓缩 塞奇威克大街 塞奇威克大街展示 暹粒市 苏旺那蓬 舞会 Ubuntu 精简版 齐拉平板 Zilla Slab 亮点

最佳答案

这确实很奇怪。我观察到许多(但不是全部)这些字体没有“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.xml

import sys, urllib2, json

if 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 = 0
items = 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 + 1
print """    <!--Total:  """ + str(count) + """-->
    </array>
</resources>"""
sys.exit(0)

此脚本输出 family_names.xml这很有趣。如果将它与 one provided by google 进行比较,它确实涂黑了问题中列出的大部分字体。但它并没有得到所有的字体,包括“Zilla”、“Ubuntu”、“Barcode”和“Encode”字体。也许这些字体也有一些共同点可以用来进一步过滤列表?

有趣的是,生成的列表还包含了 github 列表中没有的新字体,包括:

  • 沃尔科恩 SC
  • 光谱
  • 光谱SC
  • 塞奇威克大街
  • Sedgewick Ave Display

.....“Barlow”、“Bellefair”等等。其中一些字体似乎确实适用于 Android。

所以我猜测该演示文件中的列表只是旧的。也许存在许可问题或技术问题使得有必要切换列表。

无论如何,提交一个包含更新和最新列表的拉取请求可能是值得的,该列表删除不再提供的字体并添加 API 确实提供的经过测试并已知可与供应商。

关于android - 可下载字体 - 无法下载某些谷歌字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47051069/

有关android - 可下载字体 - 无法下载某些谷歌字体的更多相关文章

  1. ruby-on-rails - 由于 "wkhtmltopdf",PDFKIT 显然无法正常工作 - 2

    我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-

  2. ruby-on-rails - 无法使用 Rails 3.2 创建插件? - 2

    我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby​​1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在

  3. ruby - 无法运行 Rails 2.x 应用程序 - 2

    我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

  4. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  5. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

  6. ruby - 无法让 RSpec 工作—— 'require' : cannot load such file - 2

    我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳

  7. ruby - 无法覆盖 irb 中的 to_s - 2

    我在pry中定义了一个函数:to_s,但我无法调用它。这个方法去哪里了,怎么调用?pry(main)>defto_spry(main)*'hello'pry(main)*endpry(main)>to_s=>"main"我的ruby版本是2.1.2看了一些答案和搜索后,我认为我得到了正确的答案:这个方法用在什么地方?在irb或pry中定义方法时,会转到Object.instance_methods[1]pry(main)>defto_s[1]pry(main)*'hello'[1]pry(main)*end=>:to_s[2]pry(main)>defhello[2]pry(main)

  8. ruby-on-rails - 在 Rails 和 ActiveRecord 中查询时忽略某些字段 - 2

    我知道我可以指定某些字段来使用pluck查询数据库。ids=Item.where('due_at但是我想知道,是否有一种方法可以指定我想避免从数据库查询的某些字段。某种反拔?posts=Post.where(published:true).do_not_lookup(:enormous_field) 最佳答案 Model#attribute_names应该返回列/属性数组。您可以排除其中一些并传递给pluck或select方法。像这样:posts=Post.where(published:true).select(Post.attr

  9. ruby - 无法在 60 秒内获得稳定的 Firefox 连接 (127.0.0.1 :7055) - 2

    我使用的是Firefox版本36.0.1和Selenium-Webdrivergem版本2.45.0。我能够创建Firefox实例,但无法使用脚本继续进行进一步的操作无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055)错误。有人能帮帮我吗? 最佳答案 我遇到了同样的问题。降级到firefoxv33后一切正常。您可以找到旧版本here 关于ruby-无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055),我们在StackOverflow上找到一个类

  10. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

随机推荐