Android 按下按钮时更改字体/字体

Android 按下按钮时更改字体/字体,android,button,selector,typeface,Android,Button,Selector,Typeface,我已经知道如何使用选择器更改元素的样式,但是我没有发现任何关于字体的信息 有可能用它吗?或者还有其他方法吗?TextView.setTypeFace()使用Ctrl+Space来显示TextView或其他任何通用的类的巨大列表。字体可以很容易地成为您的样式元素。。。如果您使用默认的android样式,那么您的想法是扩展您正在实现的任何样式,只需更改您需要的元素。与以下样式元素类似,取自android样式和主题文档: <?xml version="1.0" encoding="utf-8"?

我已经知道如何使用选择器更改元素的样式,但是我没有发现任何关于字体的信息


有可能用它吗?或者还有其他方法吗?

TextView.setTypeFace()
使用Ctrl+Space来显示TextView或其他任何通用的类的巨大列表。

字体可以很容易地成为您的样式元素。。。如果您使用默认的android样式,那么您的想法是扩展您正在实现的任何样式,只需更改您需要的元素。与以下样式元素类似,取自android样式和主题文档:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CodeFont" parent="@android:style/TextAppearance.Medium">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:textColor">#00FF00</item>
        <item name="android:typeface">monospace</item>
    </style>
</resources>

填补家长的空缺
包装内容
#00FF00
单空间
然后在选择器中应用此样式,就像您已经知道如何操作一样


当然,另一种选择是在代码中执行,但是选择器要干净得多

遗憾的是,现在这是不可能的。
Android代码回购中有一张这样的票据:


您最好的选择是在ontouch侦听器中自己管理它(是的,这很难看),或者自己实现这些新选择器。

单击按钮时,使用下面的代码更改文本字体(自定义字体)

将您的字体放在main->assets->fonts目录下。
是的,我知道。。。我已经设置了一个新字体,但我想在用户按下文本视图时更改字体。。。有没有一种方法可以使用选择器或者我必须使用onTouchListener?当然,这适用于monospace。。。如果我想使用特殊字体怎么办?通常,我从Java代码中的资产加载它,但对于XML,我真的不知道如何做…啊,我明白了。。。不幸的是,除非您将TextView子类化以处理自己名称空间中的自定义属性,就像他们正在做的那样(第二个答案),然后在样式属性中应用相同的名称空间,否则不可能通过XML实现。我们如何在选择器中使用样式?
//change font when button pressed

val typeFace = Typeface.createFromAsset(activity!!.assets,"fonts/sf_semi_bold.ttf")
buttonAbout.setTypeface(typeFace)