欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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編程實現(xiàn)點擊EditText之外的控件隱藏軟鍵盤功能,涉及Android控件的功能、屬性及相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • 詳解SwipeListView框架實現(xiàn)微信\QQ滑動刪除效果

    詳解SwipeListView框架實現(xiàn)微信\QQ滑動刪除效果

    這篇文章主要為大家詳細(xì)介紹了SwipeListView框架實現(xiàn)微信\QQ滑動刪除效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • TextView實現(xiàn)跑馬燈效果 就這么簡單!

    TextView實現(xiàn)跑馬燈效果 就這么簡單!

    TextView實現(xiàn)跑馬燈效果,就這么簡單輕松實現(xiàn),這篇文章介紹了TextView制作跑馬燈效果的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Android studio導(dǎo)入項目的方法詳解(簡單快速)

    Android studio導(dǎo)入項目的方法詳解(簡單快速)

    最近開課移動互聯(lián)網(wǎng)應(yīng)用開發(fā),實驗課老師發(fā)了代碼讓我們導(dǎo)入,在網(wǎng)上找了各種方法,發(fā)現(xiàn)不是每一個項目都適合,有些能夠成功,有些還是有錯,頭大的很。后面發(fā)現(xiàn)一個比較簡單的方法,沒翻過車,新手可以試試
    2017-06-06
  • Android編輯框EditText與焦點變更監(jiān)視器及文本變化監(jiān)視器實現(xiàn)流程詳解

    Android編輯框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實現(xiàn)語音轉(zhuǎn)文字功能

    這篇文章主要介紹了如何通過Android studio調(diào)用科大訊飛的語音轉(zhuǎn)文字功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-03-03
  • Android實現(xiàn)粒子中心擴散動畫效果

    Android實現(xiàn)粒子中心擴散動畫效果

    粒子動畫效果相比其他動畫來說是非常復(fù)雜了的,主要涉及三個方面,粒子初始化、粒子位移、粒子回收等問題,本篇將實現(xiàn)兩種動畫效果,代碼基本相同,只是旋轉(zhuǎn)速度不一樣,需要的朋友可以參考下
    2024-02-02
  • Android使用美團多渠道打包方案詳解

    Android使用美團多渠道打包方案詳解

    這篇文章主要介紹了Android使用美團多渠道打包方案詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Android本地視頻壓縮方案的示例代碼

    Android本地視頻壓縮方案的示例代碼

    本篇文章主要介紹了Android本地視頻壓縮方案的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • 實現(xiàn)activity管理器一次退出所有activity

    實現(xiàn)activity管理器一次退出所有activity

    退出所有Activity網(wǎng)上有很多很多種說法,推薦的一種方法是自定義一個Activity管理器,來管理所有已打開的Activity,要退出的時候再通過這個管理器來退出所有Activity,下面是一個簡單的Activity管理器代碼
    2014-01-01

最新評論