Android自定義字型--自定義TextView(可擴充套件不同ttf字
1.最簡單直接的方式設定字型
(1)-初始化控制元件,拿到該控制元件的物件,設定字型
textView.setTypeface( Typeface.createFromAsset(this.getAssets(), "CodeBold.ttf"));
這種方式只適用於單個,少數字體需要改變樣式。如果UI中每一行的字型樣式都不一樣呢?例如
ttf 字型
2.透過自定義TextView來設定字型
如下呼叫
<com.***.***.view.TypefaceTextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="@dimen/font_12sp" app:typeface="@string/universal_text_typeface" />
在values下的strings中設定name
<string name="universal_text_typeface">PingFangLight</string>
接下來 在values下建立一個attrs.xml檔案
<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="TypefaceTextView"> <attr name="typeface" format="string" /> </declare-styleable></resources>
之後就是自定義TextView
public class TypefaceTextView extends android.support.v7.widget.AppCompatTextView { public TypefaceTextView(Context context) { this(context, null); } public TypefaceTextView(Context context, AttributeSet attrs) { this(context, attrs, 0); } public TypefaceTextView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); initTypefaceTextView(context, attrs); } private void initTypefaceTextView(Context context, AttributeSet attrs) { TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.TypefaceTextView); String type = typedArray.getString(R.styleable.TypefaceTextView_typeface); if(null==type){ return; } Typeface typeface = null; switch (type) { case "PingFangLight": typeface = Typeface.createFromAsset(context.getAssets(), "PingFangLight.ttf"); setTypeface(typeface); break; case "systemDefault": setTypeface(Typeface.DEFAULT); break; } if (typedArray != null) { typedArray.recycle(); } typeface = null; } }
作者:Ready_I
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2157/viewspace-2821610/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [原]JUnit 自定義擴充套件思路套件
- HIVE自定義函式的擴充套件Hive函式套件
- 擴充套件WCF自定義行為(二)套件
- JMeter 擴充套件開發:自定義 Java SamplerJMeter套件Java
- JMeter擴充套件開發:自定義函式JMeter套件函式
- django實現自定義manage命令的擴充套件Django套件
- 自定義擴充套件jQuery功能簡單介紹套件jQuery
- android自定義view(自定義數字鍵盤)AndroidView
- 程式碼演示Mybatis-Generator 擴充套件自定義生成MyBatis套件
- tep0.9.5支援自定義擴充套件request套件
- Android 自定義View 字型變色AndroidView
- .Net Core AutoMapper自定義擴充套件方法的使用APP套件
- 基於shiro的自定義註解的擴充套件套件
- day88-ElasticSearch-分詞- 自定義擴充套件詞庫Elasticsearch分詞套件
- DcatAdmin 擴充套件: 自定義表單(動態表單)套件
- Swift 小貼士:語言的擴充套件和自定義Swift套件
- node-exporter 擴充套件用法 – shell 自定義 exporter 監控Export套件
- Dcat Admin 自定義 Form 表單實現後臺系統配置內容的自定義,並可擴充套件配置項。ORM套件
- JSR303自定義校驗註解,自定義註解校驗字串是否是JSON字串,可擴充套件字串JSON套件
- 介面無小事(五):自定義TextViewTextView
- Laravel-admin 自定義擴充套件,jQuery 語法錯誤?Laravel套件jQuery
- JMeter 擴充套件開發:自定義 JMeter 外掛的除錯JMeter套件除錯
- 實戰 | 執行緒池的幾種自定義擴充套件執行緒套件
- jquery 擴充套件方法($.fn.extend/$.extend) 自定義外掛 拖拽jQuery套件
- Laravel 框架擴充套件 Auth 認證,實現自定義 driver,guardLaravel框架套件
- EFCore3.1+編寫自定義的EF.Functions擴充套件方法Function套件
- JMeter 擴充套件外掛實現對自定義協議的支援JMeter套件協議
- Eureka:擴充套件ClientFilter實現服務註冊自定義過濾套件clientFilter
- 基於Spring的可擴充套件Schema進行開發自定義配置標籤支援Spring套件
- 擴充spring元件之自定義標籤Spring元件
- Android自定義數字鍵盤Android
- [外掛擴充套件]onethink自定義分類標籤-關聯模型套件模型
- 用自定義 Java 程式碼擴充套件 IBM Workplace Designer 的功能Java套件IBM
- TextView 自動換行,每行排滿的自定義TextViewTextView
- android自定義View&自定義ViewGroup(下)AndroidView
- android自定義View&自定義ViewGroup(上)AndroidView
- Android自定義控制元件——自定義屬性Android控制元件
- css 自定義字型 font-faceCSS自定義字型