Android編程實現(xiàn)自動調(diào)整TextView字體大小以適應(yīng)文字長度的方法
更新時間:2016年01月12日 09:29:45 作者:hshm20517
這篇文章主要介紹了Android編程實現(xiàn)自動調(diào)整TextView字體大小以適應(yīng)文字長度的方法,涉及Android基于TextView類的繼承及Paint屬性操作實現(xiàn)字體大小自適應(yīng)的相關(guān)技巧,需要的朋友可以參考下
本文實例講述了Android編程實現(xiàn)自動調(diào)整TextView字體大小以適應(yīng)文字長度的方法。分享給大家供大家參考,具體如下:
package com.test.android.textview; import android.content.Context; import android.graphics.Paint; import android.util.AttributeSet; import android.widget.TextView; public class CustomTextView extends TextView { private static float DEFAULT_MIN_TEXT_SIZE = 10; private static float DEFAULT_MAX_TEXT_SIZE = 20; // Attributes private Paint testPaint; private float minTextSize; private float maxTextSize; public CustomTextView(Context context, AttributeSet attrs) { super(context, attrs); initialise(); } private void initialise() { testPaint = new Paint(); testPaint.set(this.getPaint()); // max size defaults to the intially specified text size unless it is // too small maxTextSize = this.getTextSize(); if (maxTextSize <= DEFAULT_MIN_TEXT_SIZE) { maxTextSize = DEFAULT_MAX_TEXT_SIZE; } minTextSize = DEFAULT_MIN_TEXT_SIZE; } /** * Re size the font so the specified text fits in the text box * assuming * the text box is the specified width. */ private void refitText(String text, int textWidth) { if (textWidth > 0) { int availableWidth = textWidth - this.getPaddingLeft() - this.getPaddingRight(); float trySize = maxTextSize; testPaint.setTextSize(trySize); while ((trySize > minTextSize) && (testPaint.measureText(text) > availableWidth)) { trySize -= 1; if (trySize <= minTextSize) { trySize = minTextSize; break; } testPaint.setTextSize(trySize); } this.setTextSize(trySize); } } @Override protected void onTextChanged(CharSequence text, int start, int before, int after) { super.onTextChanged(text, start, before, after); refitText(text.toString(), this.getWidth()); } @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { if (w != oldw) { refitText(this.getText().toString(), w); } } }
希望本文所述對大家Android程序設(shè)計有所幫助。
相關(guān)文章
Android編程實現(xiàn)點擊EditText之外的控件隱藏軟鍵盤功能
這篇文章主要介紹了Android編程實現(xiàn)點擊EditText之外的控件隱藏軟鍵盤功能,涉及Android控件的功能、屬性及相關(guān)操作技巧,需要的朋友可以參考下2017-06-06詳解SwipeListView框架實現(xiàn)微信\QQ滑動刪除效果
這篇文章主要為大家詳細(xì)介紹了SwipeListView框架實現(xiàn)微信\QQ滑動刪除效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-08-08Android studio導(dǎo)入項目的方法詳解(簡單快速)
最近開課移動互聯(lián)網(wǎng)應(yīng)用開發(fā),實驗課老師發(fā)了代碼讓我們導(dǎo)入,在網(wǎng)上找了各種方法,發(fā)現(xiàn)不是每一個項目都適合,有些能夠成功,有些還是有錯,頭大的很。后面發(fā)現(xiàn)一個比較簡單的方法,沒翻過車,新手可以試試2017-06-06Android編輯框EditText與焦點變更監(jiān)視器及文本變化監(jiān)視器實現(xiàn)流程詳解
這篇文章主要介紹了Android編輯框EditText與焦點變更監(jiān)視器及文本變化監(jiān)視器實現(xiàn)流程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-09-09詳解Android studio實現(xiàn)語音轉(zhuǎn)文字功能
這篇文章主要介紹了如何通過Android studio調(diào)用科大訊飛的語音轉(zhuǎn)文字功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-03-03實現(xiàn)activity管理器一次退出所有activity
退出所有Activity網(wǎng)上有很多很多種說法,推薦的一種方法是自定義一個Activity管理器,來管理所有已打開的Activity,要退出的時候再通過這個管理器來退出所有Activity,下面是一個簡單的Activity管理器代碼2014-01-01