天天看點

TextView極細字型

先看UC浏覽器的溫度

TextView極細字型

uc_weather.png

要實作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°"/>
           
TextView極細字型

me_weather.png

系統字型的位置

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

fonts.xml

裡配置了字型的别名

作者:wIsper

連結:http://www.jianshu.com/p/69a05f99a9ff

來源:簡書

著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。