类似微信朋友圈动态的数字红点
2015-06-03 17:08
891 查看
简单的自定义View,实现类似微信朋友圈动态的数字红点。还可以再健壮一些。主要重写了自定义View的onDraw方法。
效果图:
public class RedCircleNumber extends View{ //圆的半径 private int mRadius = 30; //显示数字的大小 private int mNumberSize = 40; //具体显示的数字 private String mNumber = "8"; //设置具体数字函数 public void setShowNumber(String mNumber) { this.mNumber = mNumber; invalidate(); } //设置数字大小函数 public void setShowNumberSize(int mNumberSize) { this.mNumberSize = mNumberSize; invalidate(); } public RedCircleNumber(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public RedCircleNumber(Context context, AttributeSet attrs) { this(context, attrs, 0); } public RedCircleNumber(Context context) { this(context, null); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //画圆 canvas.drawColor(Color.TRANSPARENT); Paint paint = new Paint(); paint.setAntiAlias(true); paint.setColor(Color.RED); paint.setStyle(Paint.Style.FILL); paint.setStrokeWidth(3); canvas.drawCircle(getWidth() / 2, getHeight() / 2, mRadius, paint); //取得具体数字的宽高 paint.setTextSize(mNumberSize); paint.setColor(Color.WHITE); Rect mBounds = new Rect(); paint.getTextBounds(mNumber, 0, mNumber.length(), mBounds); float mTextWidth = mBounds.width(); float mTextHeight = mBounds.height(); //画数字 canvas.drawText(mNumber, getWidth() / 2 - mTextWidth / 2, getHeight() / 2 + mTextHeight / 2, paint); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); } @Override public void setLayoutParams(ViewGroup.LayoutParams params) { params.width = 2 * mRadius; params.height = 2 * mRadius; super.setLayoutParams(params); } }
效果图:
相关文章推荐
- Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果 (转载)
- 公众微信认证方法与条件
- php微信支付测试开发(流程已通)
- 微信支付调用JSAPI缺少参数:timeStamp
- 微信JS SDK Demo
- PHP JS判断浏览器,微信浏览器
- C#开发微信公众平台教程
- iOS开发之微信支付
- 谷歌大脑科学家 Caffe缔造者 贾扬清 微信讲座完整版
- 微信开发 创建组织 无权限
- 贪吃蛇java小程序
- 如何增加微信朋友圈分享链接的小图片
- C#开发微信门户及应用-使用地理位置扩展相关应用
- 微信开发 BAE运平台和java语音,微信mysql数据库开发实例 --图文开发教程
- android微信支付的实现
- 微信公众平台java开发详解(工程代码+解析)
- 微信5.0.3.1去反编译异常
- 用户定位店铺功能-调用百度API
- 微信授权
- android微信支付开发