Android fontFamily无衬线灯
我需要一些关于android无衬线字体的澄清。下面的代码行Android fontFamily无衬线灯,android,android-layout,font-family,Android,Android Layout,Font Family,我需要一些关于android无衬线字体的澄清。下面的代码行 <item name="android:fontFamily">sans-serif-light</item> 如果Minsdk版本小于16,则发出警告 Q1这两种方法的区别是什么 Q2如果我直接在textview(第二种方式)中设置属性,应用程序是否与默认字体的16以下sdk版本兼容 (我只有一台搭载安卓4.4.4的设备,而且它在两种方式下都运行良好) 如果我直接在textview(第二种方式)中设置属性 应
<item name="android:fontFamily">sans-serif-light</item>
如果Minsdk版本小于16,则发出警告
Q1这两种方法的区别是什么
Q2如果我直接在textview(第二种方式)中设置属性,应用程序是否与默认字体的16以下sdk版本兼容
(我只有一台搭载安卓4.4.4的设备,而且它在两种方式下都运行良好)
如果我直接在textview(第二种方式)中设置属性
应用程序必须与默认值为16以下的sdk版本兼容
字体
即使在样式中设置字体系列,行为也不应更改。差异可能是由于您的皮棉设置。正如blackbelt所说,这一定是由于皮棉设置的差异 San serif light字体将在API 16以下的设备中不起作用。要解决此问题,您需要在asset中上载自定义字体(.ttf文件)文件
下面是如何做到这一点- 首先将sanserif light font.ttf文件复制到您的资产文件夹中,您可以从中下载。该文件将包含许多字体,但您只需要sanserif light文件 然后在代码中,执行以下操作-
Typeface light = Typeface.createFromAsset(getContext().getAssets(), "san-serif-light.ttf");
//Make sure that the font file's name is actually san-serif-light
然后您可以通过这种方式将其设置为文本视图-
textview.setTypeface(light);
这就是逻辑所说的,行为不应该改变!但是,当我以第二种方式构建应用程序时,它成功地在我的设备上运行,这与第一种方式相反,结果是构建失败。对于sdk<16的用户,第一种方式有效吗?如果是,为什么?如果不是,为什么呢?如果我是你的话,我会检查皮棉的设置,看看是否有某种不一致。如果您没有发现任何错误,您可以通过
复制该错误来抑制错误。我会检查一下棉绒,过些时候再来谢谢你的努力!我知道如何设置字体,而且我知道它在16以下不会工作。若你们能帮我解答这两个子问题就太好了。试着在问题视图中检查你们的错误。这应该给你一个提示。如果您在lint错误中找不到它,请告诉我。
textview.setTypeface(light);