2014-09-23 57 views
0

我需要一些关于sans-serif-light字体的说明。代码Android的fontFamily无衬线灯

<item name="android:fontFamily">sans-serif-light</item> 

在自定义样式以下行说<style name="custom_style"/>给出了一个错误如果的minSdkVersion小于16

而是直接在同一财产上一个TextView

android:fontFamily="sans-serif-light" 

给出警告如果minSdkVersion小于16.

Q1这两种方法之间有什么区别?

Q2如果我直接在textview(第二种方式)中设置属性,应用程序是否与16位以下的sdk版本兼容,默认字体?

(我有安卓4.4.4只有一台设备,并在其上用两种方式的伟大工程)

回答

1

如果我直接在TextView中(第二路)设置该属性将 应用程序是兼容sdk版本低于16与默认 字体?

即使您在样式中设置了字体系列,行为也不应该改变。差异可能是由于您的Lint的设置。

+0

这就是从逻辑上说,行为不应该改变!但是,当我构建第二种应用时,它在我的设备上运行得非常顺畅,与第一种方式相矛盾,导致构建失败。第一种方式为sdk <16工作吗?如果是这样,为什么呢?如果没有,为什么呢? – 2014-09-23 07:47:47

+0

如果我在你身边,我会检查Lint设置,看看是否有某种不一致。如果你没有发现任何错误,你可以通过' Blackbelt 2014-09-23 07:50:35

+0

收到。我会检查皮棉,并在某个时间回来 – 2014-09-23 08:00:30

0

正如黑带说的那样,它必须是由于皮棉设置的不同造成的。

San-serif灯字体将不是在API 16下面的设备中工作。要解决此问题,您需要上传资产中的自定义字体(.ttf文件)文件。


这里是如何做到这一点 -

先复制的san-serif字体光.TTF文件到您的资源文件夹,您可以从here下载。该文件将包含许多字体,但您只需要san-serif光源文件。

然后在你的代码,这样做 -

Typeface light = Typeface.createFromAsset(getContext().getAssets(), "san-serif-light.ttf"); 
//Make sure that the font file's name is actually san-serif-light 

然后你就可以用这种方式将其设置为一个TextView -

textview.setTypeface(light); 
+0

谢谢你的努力!我知道如何设置字体,我知道它不会在16以下。如果你能帮助我解决2个子问题,那将是非常好的。 – 2014-09-23 07:57:17

+0

尝试检入问题视图以查找错误。这应该给你一个提示。如果你在lint错误中找不到它,请告诉我。 – Confuse 2014-09-23 08:03:42