单个@id的TextView会改变所有字体吗?

时间:2012-07-11 11:24:02

标签: android

//我正在设置不同的TextView,其中包含各种内容作为文本,我正在做的是为所有textview设置字体。自定义字体也显示正常。

((TextView) findViewById    (R.id.tutor_ps_tv_home))        .setTypeface(mFace);
((TextView) findViewById    (R.id.tutor_ps_tv_plus))        .setTypeface(mFace);
((TextView) findViewById    (R.id.tutor_ps_tv_settings))    .setTypeface(mFace);
((TextView) findViewById    (R.id.tutor_ps_tv_undo))        .setTypeface(mFace);
((TextView) findViewById    (R.id.tutor_ps_tv_cam))         .setTypeface(mFace);
((TextView) findViewById    (R.id.tutor_ps_tv_share))       .setTypeface(mFace);

//是否可以为所有文本视图设置一个ID,以便更改我的字体,如下所示。

 android:id="@+id/all_textview"
 android:id="@id/all_textview"
 android:id="@id/all_textview"
 android:id="@id/all_textview"

//我将在我的活动中设置为

 ((TextView) findViewById   (R.id.all_textview))        .setTypeface(mFace);

//让任何人知道任何更好的解决方案。

注意:我只想更改字体,而不是使用textview更改任何其他用途。

4 个答案:

答案 0 :(得分:1)

  

是否可以为所有文本视图设置一个ID,以便更改我的字体,如下所示。

没有。 findViewById()仍然会返回一个TextView - 它只会是你给同名的人中的一个随机的。

在StackOverflow和其他地方有一些示例浮动内容视图的子项,找到符合条件的项目(例如,TextView)并更改其Typeface

答案 1 :(得分:1)

看来这篇文章会对你有所帮助

Android: Want to set custom fonts for whole application not runtime

该帖子的答案描述了一种方法。您可以将所有文本视图作为vararg传递给函数并更改其中的字体

最后有11票(最后一个帖子)的回答。答案描述了使用具有此字体集的自定义扩展文本视图。我个人认为这是更好的方式。

这是另一篇文章

Is it possible to set a custom font for entire of application?

此处Tom的回复帖子描述了我们如何为活动中的所有视图设置相同的字体

答案 2 :(得分:0)

我还认为你应该在style中设置你的typeFace并将它应用到你的应用程序或你的活动中,你也可以从textView继承你的风格,并默认将所有的textview设置为一个定义的样式。 / p>

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CodeFont" parent="@android:style/TextAppearance.Medium">
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textColor">#00FF00</item>
    <item name="android:typeface">monospace</item>
</style>
</resources>

的问候。 :)

答案 3 :(得分:-1)

在res / values / styles.xml中定义样式并将其应用于您的Activity。有关详细信息,请参阅:http://developer.android.com/guide/topics/ui/themes.html

修改

我的错误。如果CommonsWare说我错了,那我错了。 : - )