这是实现的效果,刚开始以为挺难的,不知道能不能自定义背景加那个白边,
网上找了些但是都比较老了,好多方法不能用了,这里自己写下,方便以后搬砖
写到最后发现,其实可以自定义背景,还挺简单的,
//小红点效果
implementation 'q.rorbin:badgeview:1.1.3'
//初始化
Badge badge = new QBadgeView(this)
.bindTarget(mMessageImage)//绑定显示控件,就是设置红点显示在哪个控件上
.setBadgeNumber(100)//设置显示数字
.setBadgeGravity(Gravity.END | Gravity.TOP)//设置显示位置
.setBadgeTextSize(8, true)//设置字体大小,后边的true是指使用sp为单位
.setBadgeBackground(getDrawable(R.drawable.base_a_little_red_dot));//设置自定义背景,白边就是在这加的
base_a_little_red_dot(本来设置的 hsape = 'oval' 但是他拉长后变椭圆了..)
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/base_colorD23A3D" />
<size
android:width="10dp"
android:height="10dp" />
<!-- 圆角 -->
<corners android:radius="50dp" />
<stroke
android:width="1dp"
android:color="@color/base_colorFFFFFF" />
</shape>
隐藏小红点
badge.hide(true);//true 是否显示消失动画
显示小红点(重新设置下数量就出来了)
badge.setBadgeNumber(100);
对了,显示小红点的控件记得留点内边距,不然会挤不下