Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android fontFamily无衬线灯_Android_Android Layout_Font Family - Fatal编程技术网

Android fontFamily无衬线灯

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(第二种方式)中设置属性 应

我需要一些关于android无衬线字体的澄清。下面的代码行

<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);