Android:自定义字体适用于TextView,不适用于Button

时间:2018-06-06 16:50:14

标签: android button kotlin textview custom-font

我无法使用Button来使用我的自定义字体。 它适用于TextView,而不是Button(它是TextView的子类)。

我正在使用带有minSdkVersion 26和Kotlin的Android Studio 3.1.2。

RES /字体/ font.xml

<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
    <font
        android:fontStyle="normal"
        android:fontWeight="400"
        android:font="@font/my-custom-font" />
</font-family>

RES /布局/ fragment.xml之

...
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/myButton"
    android:maxWidth="30dp"
    android:minWidth="30dp"
    android:maxHeight="40dp"
    android:minHeight="40dp"
    android:fontFamily="@font/my-custom-font"
    android:textSize="20dp"
    android:text="a" />
...

以上作品。用Button替换TextView,它就会停止工作。

编辑:我想使用自定义字体来保存按钮的图标,而不是使用图像和ImageButtons。我们发现自定义字体比图像更容易管理。

2 个答案:

答案 0 :(得分:1)

为按钮添加样式:

styles.xml下创建新样式:

<style name="main_button">
    <item name="android:fontFamily">@font/my-custom-font</item>
    <item name="android:background">@drawable/btn_blue</item>
    <item name="android:textColor">#FFFF</item>
    <item name="android:textAllCaps">false</item>
    <item name="android:foreground">?attr/selectableItemBackground</item>
</style>

输入您想要的任何值。请务必加入fontFamily:

然后在按钮上添加样式:

<Button
    android:id="@+id/id"
    style="@style/main_button" />

答案 1 :(得分:0)

以您的风格使用app:fontFamily="@font/my-custom-font",而不是android:fontFamily="@font/my-custom-font"