类似购物车小红点的实现-BadgeView使用

项目中经常会有这种需求,类似购物车或者消息有新的通知,今天看到geithub上有个非常不错的开源自定义View实现了这样的效果,代码简单,效果丰富,封装的非常好。感谢这样大神给我们提供如此方便的自定义view Author: Jeff Gilfelt

先看效果

思路:
1.首先是自定义BadgeView,其实是继承TextView,封装了很多构造方法;
2.使用也很简单,首先找到我们想放置的view控件,然后实例化BadgeView即可

具体来看几个:

1.比如就上图Position按钮,代码如下

btnPosition = (Button) findViewById(R.id.position_target);
        badge1 = new BadgeView(this, btnPosition);
        badge1.setText("12");
        badge1.setBadgePosition(BadgeView.POSITION_CENTER);//设置badgeView在target中显示的位置
        btnPosition.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                badge1.toggle();//点击显示和隐藏
            }
        });

先找到按钮控件,根据按钮控件初始化BadgeView。可以设置badgeView的字体、背景、显示位置。点击时间就是显示和隐藏我们的BadgeView

2.再来看一个,比如上面的Animate按钮

btnAnim1 = (Button) findViewById(R.id.anim1_target);
        badge3 = new BadgeView(this, btnAnim1);
        badge3.setText("84");
        btnAnim1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                badge3.toggle(true);//设置进入进出的anim
            }
        });

找到按钮控件,根据按钮控件实例化BadgeView。这里设置文字、动画,BadgeView有默认的动画、颜色、背景等属性

3.再看一个,比如上面的Custom background drawable

 btnCustom = (Button) findViewById(R.id.custom_target);
        badge5 = new BadgeView(this, btnCustom);
        badge5.setText("37");
        badge5.setBackgroundResource(R.drawable.badge_ifaux);//自定义图片背景
        badge5.setTextSize(16);
        btnCustom.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                badge5.toggle(true);
            }
        });

这个是我们自定义BadgeView的背景

总之BadgeView给我们封装了很多,基本满足所有需求,自己下载看看吧

如果感觉还可以,点赞留言喽!

源码下载,戳死我

你可能感兴趣的:(类似购物车小红点的实现-BadgeView使用)