国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android消息個數提醒控件使用詳解

2019-12-12 01:35:21
字體:
來源:轉載
供稿:網友

前言

在QQ中有消息個數提醒的控件,雖然現在沒用到,但是以后可能會用到,所以就實現它,也不難。

實現

效果圖如下:

這里寫圖片描述

先貼源碼了:

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);    //設置控件區域大小    setMeasuredDimension(max, max);  }  //設置背景顏色  @Override  public void setBackgroundColor(int color){    mBgPaint.setColor(color);  }  /**   * 設置通知個數顯示   * @param text   */  public void setNotifiText(int text){    setText(text+"");  }  public void setNotifiText(String text){    setText(text);  }  //繪圖  @Override  public void draw(Canvas canvas) {    //設置繪圖無鋸齒    canvas.setDrawFilter(pfd);    canvas.drawCircle(getWidth()/2, getHeight()/2, Math.max(getWidth()/2, getHeight())/2, mBgPaint);    super.draw(canvas);  }}

我是直接繼承至TextView,因為TextView有setText方法,所以只需要繪制圓形的紅色背景,然后調用方法setText即可,這就是實現的思路。

先要覆蓋onMeasure方法來得到寬度和高度,因為背景為圓形,所以我們取寬度和高度兩者之間的最大值,然后設置控件大小為一個正方形,在這個正方形的矩形里面,調用drawCircle方法來繪制圓形,設置畫筆的顏色為紅色即可。

小結

在布局文件使用這個類的時候,要設置android:gravity為center,這樣數字就可以居中了,之所以沒有繼承View來進行寫,因為View還要自己去畫數字,這樣就增加了難度,不值得了。

源碼下載點擊這里

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 无棣县| 明星| 思南县| 灌南县| 阿克陶县| 绥宁县| 德化县| 徐水县| 林州市| 武功县| 犍为县| 开远市| 桦南县| 兰考县| 吉林省| 元氏县| 班戈县| 平潭县| 漾濞| 彭阳县| 固始县| 城步| 苍溪县| 高邮市| 远安县| 涿州市| 黄大仙区| 凌源市| 大同市| 健康| 梅州市| 慈利县| 蓬莱市| 本溪市| 霍城县| 连江县| 托克托县| 岑溪市| 兰考县| 桐梓县| 泊头市|