如何将样式应用到我拥有的所有TextViews?

时间:2012-11-28 07:01:54

标签: android textview themes

  

可能重复:
  Styling all TextViews(or custom view) without adding the style attribute to every TextView

我的应用中有很多TextView个。它们具有各种字体大小,颜色等。我需要将android:shadowColorandroid:shadowRadius应用于它们,以使所有字体都具有阴影。怎么做?

电子。 g。,我可以为具有必要属性的TextView制作样式

<style name="text_views">
    <item name="android:shadowColor">@color/tv_shadow</item>
    <item name="android:shadowDy">1</item>
    <item name="android:shadowRadius">0.7</item>
</style>

并将其应用于每个TextView。是否可以将阴影的属性包含在应用程序的主题中?

2 个答案:

答案 0 :(得分:7)

是的。

您需要做的是创建一个

<style name="Theme.RedPlanetTheme" parent="android:Theme">
    <item name="android:shadowColor">@color/tv_shadow</item>
    <item name="android:shadowDy">1</item>
    <item name="android:shadowRadius">0.7</item>
</style>

然后在你的清单中你会这样做。

<application
        android:debuggable="true"
        android:icon="@drawable/icon"
        android:label="Red Planet App"
        android:theme="@style/Theme.RedPlanetTheme" >

这将允许您的整个应用程序继承您的自定义主题样式。

编辑

如果您只想申请textview,那么我们只需要更多地定制ThemeRedPlanet。

<style name="Theme.RedPlanetTheme" parent="android:Theme">    
    <item name="android:textAppearance">@style/MyRedTextAppearance</item>
</style>

<style name="MyRedTextAppearance" parent="@android:style/TextAppearance">
    <item name="android:shadowColor">@color/tv_shadow</item>
    <item name="android:shadowDy">1</item>
    <item name="android:shadowRadius">0.7</item>
</style>

I'm using this as example. Steve Pomeroy applys more directly globally themed (set once kinda deal)

答案 1 :(得分:4)

请在textview的属性中添加以下行,它将解决您的问题。

style="@style/text_views"