【发布时间】:2014-01-18 18:19:27
【问题描述】:
我想在我的 Android 应用程序中使用自定义字体。我使用以下方法将自定义字体设置为Activity 或Fragment 的所有TextView:
public static void setTypeFace(Typeface typeFace, ViewGroup parent){
for (int i = 0; i < parent.getChildCount(); i++) {
View v = parent.getChildAt(i);
if (v instanceof ViewGroup) {
setTypeFace(typeFace, (ViewGroup) v);
} else if (v instanceof TextView) {
TextView tv = (TextView) v;
tv.setPaintFlags(tv.getPaintFlags() | Paint.SUBPIXEL_TEXT_FLAG);
tv.setTypeface(typeFace);
}
}
}
活动:
public class MyActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
ViewGroup vg = (ViewGroup)getWindow().getDecorView();
ViewUtil.setTypeFace(tf, vg);
...
}
效果很好。但不幸的是,ActionBar 的字体也发生了变化。我不想要那个..
如何调整此方法以排除 ActionBar 的 TextBox?
谢谢!
【问题讨论】:
-
使用 android:textViewStyle 项定义自定义主题
-
我已经更新了我的问题(添加 MyActivity 代码)。
-
我重复一遍:谷歌关于主题和默认小部件样式
-
如果你是一个 web 开发者,它就像一个 css 样式,但它们是默认应用的
-
确定你可以做到:包含 ActionBar 子项的 ViewGroup 必须有一些固定的 id,使用 hierarchyviewer 检查它
标签: android android-ui android-typeface