Android消息个数提醒控件使用详解

  

<强>前言

  

在QQ中有消息个数提醒的控件,虽然现在没用的到,但是以后可能会用的到,所以就实现它,也不难。

  

<>强实现

  

效果图如下:

  

 Android消息个数提醒控件使用详解

  

先贴源码了:

        公开课TipNumberView延伸TextView {      私人油漆mBgPaint;   PaintFlagsDrawFilter pfd;   公共TipNumberView(上下文语境,AttributeSet attrs) {   超级(上下文,attrs);//初始化画笔   mBgPaint=new油漆();   mBgPaint.setColor (Color.RED);   mBgPaint.setAntiAlias(真正的);      pfd=new PaintFlagsDrawFilter (0, Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG);   }   公共TipNumberView(上下文语境){   这(上下文,null);      }   @Override   保护无效onMeasure (int widthMeasureSpec int heightMeasureSpec) {   超级。onMeasure (widthMeasureSpec heightMeasureSpec);//得到测量的高度和宽度   int measuredWidth=getMeasuredWidth ();   int measuredHeight=getMeasuredHeight ();   int max=数学。马克斯(measuredWidth measuredHeight);//设置控件区域大小   setMeasuredDimension (max,马克斯);   }//设置背景颜色   @Override   公共空间setBackgroundColor (int颜色){   mBgPaint.setColor(颜色);   }/* *   *设置通知个数显示   * @param文本   */公共空间setNotifiText (int文本){   setText(文本+ " ");   }      公共空间setNotifiText(字符串文本){   setText(文本);   }//绘图   @Override   公共空画(帆布画布){//设置绘图无锯齿   canvas.setDrawFilter (pfd);   canvas.drawCircle (getWidth()/2,获得()/2,Math.max (getWidth()/2,获得())/2,mBgPaint);   super.draw(画布);   }   }   之前      

我是直接继承至TextView,因为TextView有setText方法,所以只需要绘制圆形的红色背景,然后调用方法setText即可,这就是实现的思路。

  

先要覆盖onMeasure方法来得到宽度和高度,因为背景为圆形,所以我们取宽度和高度两者之间的最大值,然后设置控件大小为一个正方形,在这个正方形的矩形里面,调用drawCircle方法来绘制圆形,设置画笔的颜色为红色即可。

  

<强>小结

  

在布局文件使用这个类的时候,要设置android:重力为中心,这样数字就可以居中了,之所以没有继承视图来进行写,因为视图还要自己去画数字,这样就增加了难度,不值得了。

  

源码下载点击这里。

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Android消息个数提醒控件使用详解