我正在尝试使用我的活动更改标题栏的文本外观。深入:我想将fontFamily更改为sans-serif-thin。
这是我尝试在其他各种方法中做的事情:
<style name="CustomActionBarTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/jammi_red</item>
<item name="colorPrimaryDark">@color/jammi_red_dark</item>
<item name="colorAccent">@color/jammi_green</item>
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:titleTextStyle">@style/myTheme.ActionBar.Text</item>
</style>
<style name="myTheme.ActionBar.Text" parent="Base.TextAppearance.AppCompat.Title">
<item name="android:fontFamily">sans-serif-thin</item>
</style>
有谁知道我做错了什么?我正在使用带有API 21的Nexus 5.我的应用程序的最低API是16。
答案 0 :(得分:1)
这就是我在我的应用中执行此操作的方式。这是我的MainActivity代码的一部分:
Typeface face=Typeface.createFromAsset(getAssets(),"fonts/CustomFont.ttf");
actionBar = getSupportActionBar();
int titleId = getResources().getIdentifier("action_bar_title", "id", "android");
TextView tv = (TextView) findViewById(titleId);
tv.setTypeface(face);
不要忘记将.ttf文件放入资产文件夹。
答案 1 :(得分:0)
尝试以编程方式(将您的Typeface文件放在资产文件夹中),它适用于我:
int titleId = getResources().getIdentifier("action_bar_title", "id","android");
TextView yourTextView = (TextView) findViewById(titleId);
private Typeface tfLogo = Typeface.createFromAsset(getAssets(), "font/Wolf.otf");
yourTextView.setTypeface(tfLogo);
答案 2 :(得分:0)
你说你的最低sdk级别是16,所以不要使用AppCompat
包,它是旧版本的后向兼容性。使用其中一个平台主题,例如Theme.Holo.Light.Dark.ActionBar
中没有AppCompat
作为父级主题。