您的位置:首页 > 编程语言

在 XML 中通过数据绑定用一行代码定制字体

2015-10-09 13:50 344 查看

XML 中通过数据绑定用一行代码定制字体 (plus.google.com)
Lisa Wray 对新的数据绑定库的能力印象深刻,会在本文中展示如何用它来定制字体

I
started playing with data binding last night for real, and I'm amazed by the power it gives you.  Check out this one-liner to set a custom font on a TextView:

@BindingAdapter({"bind:font"})
public static void setFont(TextView textView, String fontName){
 textView.setTypeface(Typeface.createFromAsset(textView.getContext().getAssets(), "fonts/" + fontName));
}

In XML:
<TextView
app:font="@{`Source-Sans-Pro-Regular.ttf`}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

Previously, this used to take endless lines of repetitive Java code (one for each TextView!). The missing custom typeface support in TextView
has been a grievance held against the Android platform for years.
 There's even an inventive library to address it[2]. Data binding makes all of that obselete.  If you can't tell, I'm in love!!  It's terse, powerful, and one of the biggest leaps forward I've seen for Android productivity.

As usual, you need to put your font file in assets/fonts/, and make sure to include the data binding framework.  And if you're doing this
to many TextViews, just get a little more fancy and cache the Typeface instead of creating it every time (thanks for the reminder +Ian
Lake!)

[1] https://developer.android.com/tools/data-binding/guide.html
[2] Calligraphy: https://github.com/chrisjenx/Calligraphy
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: