Android 自定義TextView實現(xiàn)文本內(nèi)容自動調(diào)整字體大小
最近做通訊錄小屏機 聯(lián)系人姓名顯示--長度超過邊界字體變小
/** * 自定義TextView,文本內(nèi)容自動調(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()); } }
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關(guān)文章
Android常用布局(FrameLayout、LinearLayout、RelativeLayout)詳解
這篇文章主要為大家詳細介紹了Android常用布局FrameLayout、LinearLayout、RelativeLayout,感興趣的小伙伴們可以參考一下2016-06-06Android補間動畫基本使用(位移、縮放、旋轉(zhuǎn)、透明)
這篇文章主要介紹了Android補間動畫基本使用(位移、縮放、旋轉(zhuǎn)、透明),補間動畫就是原形態(tài)變成新形態(tài)時為了過渡變形過程,生成的動畫2018-05-05Android ListView下拉刷新上拉自動加載更多DEMO示例
這篇文章主要介紹了Android ListView下拉刷新上拉自動加載更多DEMO示例的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-07-07Android studio設(shè)置指定的簽名文件教程
這篇文章主要介紹了Android studio設(shè)置指定的簽名文件教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03Android PopupWindow使用方法小結(jié)
這篇文章主要為大家詳細介紹了Android PopupWindow使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06解析Android中實現(xiàn)滑動翻頁之ViewFlipper的使用詳解
有一些場景,我們需要向用戶展示一系列的頁面。比如我們正在開發(fā)一個看漫畫的應(yīng)用,可能就需要向用戶展示一張一張的漫畫圖片,用戶使用手指滑動屏幕,可以在前一幅漫畫和后一幅漫畫之間切換。這個時候ViewFlipper就是一個很好的選擇2013-05-05Android中實現(xiàn)WebView和JavaScript的互相調(diào)用詳解
這篇文章主要給大家介紹了關(guān)于Android中實現(xiàn)WebView和JavaScript的互相調(diào)用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價值,需要的朋友下面來一起看看吧。2018-03-03