我正在玩 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 列表中没有的新字体,包括:
.....“Barlow”、“Bellefair”等等。其中一些字体似乎确实适用于 Android。
所以我猜测该演示文件中的列表只是旧的。也许存在许可问题或技术问题使得有必要切换列表。
无论如何,提交一个包含更新和最新列表的拉取请求可能是值得的,该列表删除不再提供的字体并添加 API 确实提供的经过测试并已知可与供应商。
关于android - 可下载字体 - 无法下载某些谷歌字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47051069/
我在从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""-
我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在
我尝试运行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
我正在尝试在我的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
我正在编写一个小脚本来定位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
我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳
我在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)
我知道我可以指定某些字段来使用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
我使用的是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上找到一个类
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub