Android:自定义字体适用于文本视图,而不是按钮
我无法获得使用自定义字体的按钮。 它适用于TextView,而不是按钮(TextView的子类) 我正在使用Android Studio 3.1.2和MinsdkVersion26和Kotlin res/font/font.xmlAndroid:自定义字体适用于文本视图,而不是按钮,android,button,kotlin,textview,custom-font,Android,Button,Kotlin,Textview,Custom Font,我无法获得使用自定义字体的按钮。 它适用于TextView,而不是按钮(TextView的子类) 我正在使用Android Studio 3.1.2和MinsdkVersion26和Kotlin res/font/font.xml res/layout/fragment.xml 。。。 ... 以上工作。将TextView替换为按钮,它将停止工作 编辑:我想使用自定义字体来保存按钮的图标,而不是使用图像和图像按钮。我们发现自定义字体比图像更易于管理。为按钮添加样式: 在styles.xml
res/layout/fragment.xml
。。。
...
以上工作。将TextView替换为按钮,它将停止工作
编辑:我想使用自定义字体来保存按钮的图标,而不是使用图像和图像按钮。我们发现自定义字体比图像更易于管理。为按钮添加样式: 在
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>
在您的样式中使用
app:fontfamine=“@font/my custom font”
,而不是android:fontfamine=“@font/my custom font”
默认情况下按钮不是粗体的吗?你没有提供一个大胆的风格与你的font@SamuelEminet根据标准,我只能将fontStyle
设置为normal
或italic
以添加粗体样式添加一种重量约为700的字体android:fontwweight=“700”
谢谢@SamuelEminet,但我并不是为了使用我的自定义字体而将其设置为粗体。如果我对按钮使用标准字体,它将以正常的重量显示。另外,您的回答给了我一个提示:如果我只是将android:textAllCaps=“false”
添加到我的按钮上,它确实可以工作。我猜按钮默认使用所有大写字母,到目前为止,我只映射了小写字符。总而言之:虽然使用样式可以为许多按钮指定一次属性,并且可能很有用,但自定义字体确实适用于按钮。@FabioKatz完美!我喜欢使用样式,因为当重复使用同一样式时,复制和粘贴更少!我很高兴这对你有帮助
...
<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" />
...
<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>
<Button
android:id="@+id/id"
style="@style/main_button" />