序:有時候UI設計常常會在界面設計中加入與設計風格相搭配的字體,而作爲APP開發的我們一般都會引用默認的TextView字體進行顯示;今天就來寫一篇自定義字體的文章!
PS:別忘了向UI要ttf字體文件哦
1 在工程目錄下創建assets 文件夾,將ttf字體文件copy到該文件下
我這裏從電腦字體庫裏面隨便拿了三種字體,楷書、行楷、隸書 (控制器面板,字體就找到系統字體庫了)
2 創建自定義TextView
2.1 自定義字體View繼承TextView 實現三個構造器
public class KaitiTextView extends TextView {
public KaitiTextView(Context context) {
super(context);
}
public KaitiTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public KaitiTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
}
2.2 獲取字體文件構造器中初始化字體
private void init(Context context)
{
Typeface roboto= Typeface.createFromAsset(context.getAssets(),"STKAITI.TTF");
this.setTypeface(roboto);
}
2.3 完成自定義TextView
public class KaitiTextView extends TextView {
public KaitiTextView(Context context) {
super(context);
init(context);
}
public KaitiTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
public KaitiTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}
private void init(Context context)
{
Typeface roboto= Typeface.createFromAsset(context.getAssets(),"STKAITI.TTF");
this.setTypeface(roboto);
}
}
3 在佈局文件中引用自定義的TextView
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ui.MainActivity">
<com.hengda.smart.blueamer.textview.KaitiTextView
android:id="@+id/tv_kaiti"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="23sp" />
<com.hengda.smart.blueamer.textview.XinkaiTextView
android:id="@+id/tv_xingkai"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="23sp"/>
<com.hengda.smart.blueamer.textview.KaitiTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="23sp"
android:text="舉頭望明月"/>
<com.hengda.smart.blueamer.textview.XinkaiTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="23sp"
android:text="低頭思故鄉"/>
<com.hengda.smart.blueamer.textview.LitiTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textSize="23sp"
android:text=" 人生本就該簡簡單單的做好每時每刻的自己,而不應該把過多的期望,放在未來,因爲時光是最無情的東西。先不說未來的人或事的改變,說不定未來變的是你自己。現在的你,或許頹廢不堪,或許滿懷鬥志,或許忙忙碌碌,或許無所事事。但未來的你會是怎樣,誰知道呢?"/>
</LinearLayout>
4 完成了自定義TextView 的顯示
是不是很簡單呢?
SampleCode:https://github.com/BlueAmberTec/BlueAmerTj_TextView