在customview [从样式]获取android attriblute值时出错

时间:2015-07-29 12:35:03

标签: android android-layout android-custom-view android-theme

我正在为textview或按钮创建CustomView以更改为自定义字体 [粗体/普通]。

在我的自定义视图中获取android:textStyle,我正在使用以下代码。

int textStyle = attrs.getAttributeIntValue("http://schemas.android.com/apk/res/android", "textStyle", 0);

switch (textStyle) {
    case 1: // bold
        // settypeface with Bold font


    case 0: // regular
    default:
        // settypeface with normal font
}

当我使用以下标记时,它运作良好[给出粗体版本的字体]。

<com.customfont.CustomFontButton
                     .
                     .  
                     . 
  android:textStyle="bold" />

但是当我通过使用按钮样式来尝试它时,它总是给出textStyle变量的默认值,该值为0.并且产生正常版本的字体。

<com.customfont.CustomFontButton
   .
   .
   .
   style="@style/ButtonStyle"
/>

此按钮的样式是

<style name="ButtonStyle" parent="@android:style/Widget.Button">
        <item name="android:textAppearance">@android:style/TextAppearance.Small</item>
        <item name="android:textStyle">bold</item>
        <item name="android:textColor">@color/blue_dark</item>
        <item name="android:background">@drawable/button_bg</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:paddingLeft">8dp</item>
        <item name="android:paddingRight">8dp</item>
        <item name="android:paddingTop">8dp</item>
        <item name="android:paddingBottom">8dp</item>
        <item name="android:minHeight">0dp</item>
        <item name="android:minWidth">0dp</item>
        <!-- <item name="android:textIsSelectable">true</item> -->

    </style>

如图所示,textStyle设置为bold。但是这个按钮并没有变得大胆。还有一件事,我的主题正确地适用于清单。

那么在styles.xml中使用textStyle可以做什么来不为app中的每个按钮手动设置?

任何帮助都会很棒。

0 个答案:

没有答案