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

Android消息個(gè)數(shù)提醒控件使用詳解

 更新時(shí)間:2017年11月30日 11:36:52   作者:潘建成  
這篇文章主要為大家詳細(xì)介紹了Android消息個(gè)數(shù)提醒控件的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前言

在QQ中有消息個(gè)數(shù)提醒的控件,雖然現(xiàn)在沒用到,但是以后可能會(huì)用到,所以就實(shí)現(xiàn)它,也不難。

實(shí)現(xiàn)

效果圖如下:

這里寫圖片描述

先貼源碼了:

public class TipNumberView extends TextView {

  private Paint mBgPaint ;
  PaintFlagsDrawFilter pfd; 
  public TipNumberView(Context context, AttributeSet attrs) {
    super(context, attrs);
    //初始化畫筆
    mBgPaint = new Paint();
    mBgPaint.setColor(Color.RED);
    mBgPaint.setAntiAlias(true);

    pfd = new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG); 
  }
  public TipNumberView(Context context) {
    this(context,null);

  }
  @Override
  protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    //得到測量的高度和寬度
    int measuredWidth = getMeasuredWidth();
    int measuredHeight = getMeasuredHeight();
    int max = Math.max(measuredWidth, measuredHeight);
    //設(shè)置控件區(qū)域大小
    setMeasuredDimension(max, max);
  }

  //設(shè)置背景顏色
  @Override
  public void setBackgroundColor(int color){
    mBgPaint.setColor(color);
  }

  /**
   * 設(shè)置通知個(gè)數(shù)顯示
   * @param text
   */
  public void setNotifiText(int text){
    setText(text+"");
  }

  public void setNotifiText(String text){
    setText(text);
  }

  //繪圖
  @Override
  public void draw(Canvas canvas) {
    //設(shè)置繪圖無鋸齒
    canvas.setDrawFilter(pfd);
    canvas.drawCircle(getWidth()/2, getHeight()/2, Math.max(getWidth()/2, getHeight())/2, mBgPaint);
    super.draw(canvas);
  }
}

我是直接繼承至TextView,因?yàn)門extView有setText方法,所以只需要繪制圓形的紅色背景,然后調(diào)用方法setText即可,這就是實(shí)現(xiàn)的思路。

先要覆蓋onMeasure方法來得到寬度和高度,因?yàn)楸尘盀閳A形,所以我們?nèi)挾群透叨葍烧咧g的最大值,然后設(shè)置控件大小為一個(gè)正方形,在這個(gè)正方形的矩形里面,調(diào)用drawCircle方法來繪制圓形,設(shè)置畫筆的顏色為紅色即可。

小結(jié)

在布局文件使用這個(gè)類的時(shí)候,要設(shè)置android:gravity為center,這樣數(shù)字就可以居中了,之所以沒有繼承View來進(jìn)行寫,因?yàn)閂iew還要自己去畫數(shù)字,這樣就增加了難度,不值得了。

源碼下載點(diǎn)擊這里。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論