Android 字体(1)使用系统字体

转自:https://www.jianshu.com/p/69a05f99a9ff

先看UC浏览器的温度

要实现17°这样的极细的字体

自定义View

继承TextView,在onDraw方法中设置画笔粗细

TextPaint tp = new TextPaint();
tp.setAntiAlias(true);
tp.setStyle(Paint.Style.FILL_AND_STROKE);
tp.setStrokeWidth(0.1f);

setStrokeWidth方法默认参数是0,而且不接受负数参数,也就是说,只能加粗不能变细。

Spannable

再试试Spannable

Spannable s = new SpannableString("17°29");
s.setSpan(new AbsoluteSizeSpan(30, true), 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
s.setSpan(new AbsoluteSizeSpan(30, false), 3, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
s.setSpan(new RelativeSizeSpan(2.0f), 0, 3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(s);

效果也是一样,可以改变字体大小,但是只能加粗不能变细

Thin字体

从字体本身出发,尝试寻找细细的字体

http://stackoverflow.com/questions/19691530/valid-values-for-androidfontfamily-and-what-they-map-to?answertab=votes#tab-top

Added in Android Jelly Bean (4.1) - API 16 :
Regular (default):

<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">normal</item> 

Italic:

<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">italic</item>

Bold:

<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">bold</item>

Bold-italic:

<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">bold|italic</item>

Light:

<item name="android:fontFamily">sans-serif-light</item>
<item name="android:textStyle">normal</item>

Light-italic:

<item name="android:fontFamily">sans-serif-light</item>
<item name="android:textStyle">italic</item>

Thin :

<item name="android:fontFamily">sans-serif-thin</item>
<item name="android:textStyle">normal</item>

Thin-italic :

<item name="android:fontFamily">sans-serif-thin</item>
<item name="android:textStyle">italic</item>

Condensed regular:

<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">normal</item>

Condensed italic:

<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">italic</item>

Condensed bold:

<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">bold</item>

Condensed bold-italic:

<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">bold|italic</item>

Added in Android Lollipop (v5.0) - API 21 :
Medium:

<item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textStyle">normal</item>

Medium-italic:

<item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textStyle">italic</item>

Black:

<item name="android:fontFamily">sans-serif-black</item>
<item name="android:textStyle">italic</item>

我自己的尝试

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textview"
    android:textSize="60sp"
    android:layout_gravity="center_horizontal|bottom"
    android:textColor="@color/colorAccent"
    android:gravity="center"
    android:textStyle="normal"
    android:fontFamily="sans-serif-thin"
    android:text="17°"/>

系统字体的位置

D:\Android\sdk\platforms\android-N\data\fonts

fonts.xml里配置了字体的别名

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 先看UC浏览器的温度 要实现17°这样的极细的字体 自定义View 继承TextView,在onDraw方法中设置...
    wIsper阅读 14,131评论 4 52
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    wgl0419阅读 6,388评论 1 9
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,619评论 2 45
  • 参考:http://stackoverflow.com/questions/33320664/which-font...
    ForestL阅读 3,113评论 0 2
  • 先补个昨天清明节的 早上回二舅家给外公外婆上坟,陪外甥看了部像素大战。先看了一点点明日的我与昨日的你约会,小外甥说...
    十元希阅读 154评论 0 0