Android 自定義TextView實(shí)現(xiàn)文本內(nèi)容自動(dòng)調(diào)整字體大小
最近做通訊錄小屏機(jī) 聯(lián)系人姓名顯示--長(zhǎng)度超過邊界字體變小
/** * 自定義TextView,文本內(nèi)容自動(dòng)調(diào)整字體大小以適應(yīng)TextView的大小 * @author yzp */ public class AutoFitTextView extends TextView { private Paint mTextPaint; private float mTextSize; public AutoFitTextView(Context context) { super(context); } public AutoFitTextView(Context context, AttributeSet attrs) { super(context, attrs); } /** * Re size the font so the specified text fits in the text box assuming the * text box is the specified width. * * @param text * @param textWidth */ private void refitText(String text, int textViewWidth) { if (text == null || textViewWidth <= 0) return; mTextPaint = new Paint(); mTextPaint.set(this.getPaint()); int availableTextViewWidth = getWidth() - getPaddingLeft() - getPaddingRight(); float[] charsWidthArr = new float[text.length()]; Rect boundsRect = new Rect(); mTextPaint.getTextBounds(text, 0, text.length(), boundsRect); int textWidth = boundsRect.width(); mTextSize = getTextSize(); while (textWidth > availableTextViewWidth) { mTextSize -= 1; mTextPaint.setTextSize(mTextSize); textWidth = mTextPaint.getTextWidths(text, charsWidthArr); } this.setTextSize(TypedValue.COMPLEX_UNIT_PX, mTextSize); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); refitText(this.getText().toString(), this.getWidth()); } }
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!
- android 更改TextView中任意位置字體大小和顏色的方法
- Android TextView 設(shè)置字體大小的方法
- Android編程實(shí)現(xiàn)自動(dòng)調(diào)整TextView字體大小以適應(yīng)文字長(zhǎng)度的方法
- Android編程中TextView字體屬性設(shè)置方法(大小、字體、下劃線、背景色)
- Android 實(shí)現(xiàn)不同字體顏色的TextView實(shí)現(xiàn)代碼
- Android TextView設(shè)置不同的顏色字體
- Android如何在一個(gè)TextView中設(shè)置不同字體大小、不同字體顏色封裝
相關(guān)文章
Android常用布局(FrameLayout、LinearLayout、RelativeLayout)詳解
這篇文章主要為大家詳細(xì)介紹了Android常用布局FrameLayout、LinearLayout、RelativeLayout,感興趣的小伙伴們可以參考一下2016-06-06Android補(bǔ)間動(dòng)畫基本使用(位移、縮放、旋轉(zhuǎn)、透明)
這篇文章主要介紹了Android補(bǔ)間動(dòng)畫基本使用(位移、縮放、旋轉(zhuǎn)、透明),補(bǔ)間動(dòng)畫就是原形態(tài)變成新形態(tài)時(shí)為了過渡變形過程,生成的動(dòng)畫2018-05-05Android ListView下拉刷新上拉自動(dòng)加載更多DEMO示例
這篇文章主要介紹了Android ListView下拉刷新上拉自動(dòng)加載更多DEMO示例的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07Android studio設(shè)置指定的簽名文件教程
這篇文章主要介紹了Android studio設(shè)置指定的簽名文件教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03Android PopupWindow使用方法小結(jié)
這篇文章主要為大家詳細(xì)介紹了Android PopupWindow使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06解析Android中實(shí)現(xiàn)滑動(dòng)翻頁之ViewFlipper的使用詳解
有一些場(chǎng)景,我們需要向用戶展示一系列的頁面。比如我們正在開發(fā)一個(gè)看漫畫的應(yīng)用,可能就需要向用戶展示一張一張的漫畫圖片,用戶使用手指滑動(dòng)屏幕,可以在前一幅漫畫和后一幅漫畫之間切換。這個(gè)時(shí)候ViewFlipper就是一個(gè)很好的選擇2013-05-05Android自定義dialog 自下往上彈出的實(shí)例代碼
本文通過實(shí)例代碼給大家介紹了Android自定義dialog 自下往上彈出效果,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-08-08Android中實(shí)現(xiàn)WebView和JavaScript的互相調(diào)用詳解
這篇文章主要給大家介紹了關(guān)于Android中實(shí)現(xiàn)WebView和JavaScript的互相調(diào)用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友下面來一起看看吧。2018-03-03