我正在为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中的每个按钮手动设置?
任何帮助都会很棒。