我在我的应用程序中使用HoloEverywhere库并且从主题应用字体我已经将新的自定义属性ttfName添加到TextView样式,并在org.holoeverywhere.widget.TextView的构造函数中进行了一些必要的更改,如下所示;
if (a.hasValue(R.styleable.TextView_ttfName)) {
setTypeface(Typeface.createFromAsset(getContext().getAssets(), "fonts/" +
a.getString(R.styleable.TextView_ttfName)));
}
另外,声明的样式和主题如下;
<style name="AppTheme" parent="@style/Holo.Theme.Light.DarkActionBar">
<item name="android:textViewStyle">@style/Widget.ApplicationTheme.TextView</item
</style>
<style name="Widget.ApplicationTheme.TextView" parent="@style/Holo.TextView">
<item name="ttfName">@string/app_font_roboto_light</item>
<item name="android:textSize">@dimen/app_dimen_default_text_size</item>
</style>
,添加的ttfName
属性如下;
...
<attr name="ttfName" format="string" />
...
...
<declare-styleable name="TextView">
<attr name="android:text" />
<attr name="android:textAllCaps" />
<attr name="textAllCaps" />
<attr name="ttfName" />
</declare-styleable>
...
现在,当我将AppTheme应用于我的应用程序时,只有当android版本&gt;时才会应用该字体。 4.0(尚未检查3.0)。 但在Android版本2.3上,字体没有被应用..
有人可以帮我弄清楚这里出了什么问题吗?
提前致谢。
答案 0 :(得分:1)
它是在preHC机器人上无法使用Holoeverywhere的字体,preHC上的FontLoader在所有textview中加载roboto字体。
对于应用字体,请查看类org.holoeverywhere.FontLoader
和FontLoader#apply(View)
方法。