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

前端之家收集整理的这篇文章主要介绍了在 XML 中通过数据绑定用一行代码定制字体前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在 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 foryears. 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

原文链接:https://www.f2er.com/xml/296026.html

猜你在找的XML相关文章