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

Android編程實(shí)現(xiàn)自動(dòng)調(diào)整TextView字體大小以適應(yīng)文字長(zhǎng)度的方法

 更新時(shí)間:2016年01月12日 09:29:45   作者:hshm20517  
這篇文章主要介紹了Android編程實(shí)現(xiàn)自動(dòng)調(diào)整TextView字體大小以適應(yīng)文字長(zhǎng)度的方法,涉及Android基于TextView類的繼承及Paint屬性操作實(shí)現(xiàn)字體大小自適應(yīng)的相關(guān)技巧,需要的朋友可以參考下

本文實(shí)例講述了Android編程實(shí)現(xiàn)自動(dòng)調(diào)整TextView字體大小以適應(yīng)文字長(zhǎ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);
    }
  }
}

希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Android編程實(shí)現(xiàn)點(diǎn)擊EditText之外的控件隱藏軟鍵盤功能

    Android編程實(shí)現(xiàn)點(diǎn)擊EditText之外的控件隱藏軟鍵盤功能

    這篇文章主要介紹了Android編程實(shí)現(xiàn)點(diǎn)擊EditText之外的控件隱藏軟鍵盤功能,涉及Android控件的功能、屬性及相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • 詳解SwipeListView框架實(shí)現(xiàn)微信\QQ滑動(dòng)刪除效果

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

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

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

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

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

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

    Android編輯框EditText與焦點(diǎn)變更監(jiān)視器及文本變化監(jiān)視器實(shí)現(xiàn)流程詳解

    這篇文章主要介紹了Android編輯框EditText與焦點(diǎn)變更監(jiān)視器及文本變化監(jiān)視器實(shí)現(xiàn)流程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2022-09-09
  • 詳解Android studio實(shí)現(xiàn)語(yǔ)音轉(zhuǎn)文字功能

    詳解Android studio實(shí)現(xiàn)語(yǔ)音轉(zhuǎn)文字功能

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

    Android實(shí)現(xiàn)粒子中心擴(kuò)散動(dòng)畫效果

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

    Android使用美團(tuán)多渠道打包方案詳解

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

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

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

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

    退出所有Activity網(wǎng)上有很多很多種說(shuō)法,推薦的一種方法是自定義一個(gè)Activity管理器,來(lái)管理所有已打開的Activity,要退出的時(shí)候再通過(guò)這個(gè)管理器來(lái)退出所有Activity,下面是一個(gè)簡(jiǎn)單的Activity管理器代碼
    2014-01-01

最新評(píng)論