以编程方式在Kotlin中自定义TypeFace

时间:2017-05-30 10:46:40

标签: android kotlin android-typeface

如何设置任何TextView的字体。使用java我们做这样的事情

TextView tv = (TextView) findViewById(R.id.custom);
tv.setTypeface(null, Typeface.BOLD);

使用kotlin时如何执行此类操作。哪个是在kotlin中这样做的有效方法? kotlin有没有更好的方法?

holder.itemView.title.typeface = ?

6 个答案:

答案 0 :(得分:6)

感谢经过大量研究后我用单线解决了这个问题

holder.itemView.title.typeface = Typeface.DEFAULT_BOLD

希望它可以帮助别人!!

答案 1 :(得分:2)

另一个选项可能是extension function



    // Couldn't come up with better naming (╯°□°)╯︵ ┻━┻
    fun TextView.type(style : Int) {
        setTypeface(null, style)
    }

    // usage
    textView.type(BOLD)


答案 2 :(得分:1)

$1

答案 3 :(得分:0)

试试这个......

val tv = findViewById(R.id.custom) as TextView
tv.setTypeface(null, Typeface.BOLD)

答案 4 :(得分:0)

到目前为止,我可以理解你想要做的是同样的事情你在Kotlin中提出 kotlin等效物

    holder.itemView.title.setTypeface(null, Typeface.BOLD) ,

因为这个方法有两个参数不是一个setter 所以你不能像数据类的属性那样直接赋值。如果你这样做,那么你没有做同样的事情。

您的回答 类似

    holder.itemView.title.setTypeface(Typeface.DEFAULT_BOLD);

答案 5 :(得分:0)

科特琳答案-2020年6月17日

如果要使用自定义字体, Typeface.createFromAsset()可以帮助您完成工作!

此示例在Fragment中使用。在“活动”中,您无需写“ activity !!”。

yourTextview.typeface = Typeface.createFromAsset(activity!!.assets, "fonts/Forza-Bold.otf")

如果要使用默认字体:

yourTextview.typeface = Typeface.DEFAULT_BOLD

@canerkaseler