####前言 以前我们实现这个功能都是用 BadgeView.java,大体就是将这个java类复制到自己的项目中,然后在项目中使用,今天讲的也是一款BadgeView,我将其封装称工具类Badgetor,下面作以讲解。

“新“BadgeView的优点

BadgeView 库的导入

BadgeView的封装类Badgetor

Badgetor在activity中的使用

效果图和项目结构图

一. “新“BadgeView的优点

今天要介绍的BadgeView相比于以前的BadgeView有以下优点:

不需要引入大量的代码,直接引入库

在设置小圆点相对位置的时候更加简单

二. BadgeView 库的导入

需要导入库,在app的build.gradle中添加依赖:

//小圆点

implementation 'q.rorbin:badgeview:1.1.3'

若以上导入失败,可能是 implementation 关键字的原因,可改成以下代码重新导入:

//小圆点

compile 'q.rorbin:badgeview:1.1.3'

三. BadgeView的封装类Badgetor的使用

我将 "新"BadgeView特性封装称一个工具类Badgetor,下面对其使用做以讲解。 ######3.1 设置一个显示数字的小圆点

public void showNumPoint(View targetView, int count, Context context);

其中,targetView为你要设置显示小圆点的view。count为要显示的数字。 ######3.2 获取小圆点上的数字

public int getPointNum();

######3.3 显示文字小圆点

public void showTextPoint(View targetView, String text, Context context);

######3.4 获取小圆点上的文字

public String getPointText()

######3.5 隐藏小圆点

public void hideBadgeView();

######3.6 打开拖拽消除模式并设置监听 注:只有当设置了拖曳监听才会有拖曳效果

public void setOnDragStateChangedListener(Badge.OnDragStateChangedListener listener);

######3.7 设置文字大小 默认文字大小为 8sp

public void setTextSize(float textSize);

######3.8 设置文字颜色 默认白色

public void setTextColor(int textColor);

######3.9 设置是否显示精确数值 默认不显示精确度,即当数字超过100的时候,在小圆点上显示 99+

public void setExactMode(boolean exactMode);

######3.10 设置BadgeView相对view的位置 默认为显示在tagetView右上角

public void setGravity(int gravity)

######3.11 设置外边距 默认外边距为 2dp

public void setOffset(float offset)

######3.12 设置内边距 默认内边距为 2dp

public void setPadding(float padding)

######3.13 设置背景色 默认背景色为红色

public void setBackgroundColor(int backgroundColor)

######3.14 设置背景图片

public void setBackgroundDrawable(Drawable backgroundDrawable)

######3.15 设置阴影

public void setShadow(boolean shadow)

######3.16 设置描边属性

public void setStoke(boolean stoke,int color,int width)

######3.17 设置是否开启隐藏动画 默认动画效果开启

public void setAnimate(boolean animate)

四. Badgetor在activity中的使用

######4.1 在MainActivity中的使用样例

package com.android.testdemo.main;

import android.graphics.Color;

import android.view.Gravity;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

import com.android.testdemo.R;

import com.android.testdemo.base.BaseActivity;

import butterknife.BindView;

import q.rorbin.badgeview.Badge;

public class MainActivity extends BaseActivity{

@BindView(R.id.button1)

Button mBtnText;

@BindView(R.id.tv_test)

TextView mTvTest;

@Override

protected int getContentViewId() {

return R.layout.activity_main;

}

@Override

protected void initData() {

//设置文字大小8sp

Badgetor.getInstance().setTextSize(8);

//设置文字颜色

Badgetor.getInstance().setTextColor(Color.parseColor("#ffffff"));

//设置精确数值,只有设置数字的时候才生效,false时当数字大于99时显示99+,true时数字大于99时显示实际数字

Badgetor.getInstance().setExactMode(true);

//设置BadgeView相对mTvTest的位置,右上角

Badgetor.getInstance().setGravity(Gravity.RIGHT|Gravity.TOP);

//设置外边距2dp

Badgetor.getInstance().setOffset(2);

//设置内边距2dp

Badgetor.getInstance().setPadding(2);

//设置背景色

Badgetor.getInstance().setBackgroundColor(Color.parseColor("#ff0000"));

//不设置背景图片

Badgetor.getInstance().setBackgroundDrawable(null);

//开启动画效果

Badgetor.getInstance().setAnimate(true);

//显示数字

Badgetor.getInstance().showNumPoint(mTvTest,190,MainActivity.this);

//获取数字

int count=Badgetor.getInstance().getPointNum();

// //显示文字

// Badgetor.getInstance().showTextPoint(mTvTest, "大家好", MainActivity.this);

// //获取文字

// String message=Badgetor.getInstance().getPointText();

}

@Override

protected void setListener() {

mBtnText.setOnClickListener(this);

Badgetor.getInstance().setOnDragStateChangedListener(new Badge.OnDragStateChangedListener() {

@Override

public void onDragStateChanged(int dragState, Badge badge, View targetView) {

//此处处理拖曳结束后的逻辑

//......

}

});

}

@Override

public void onClick(View v) {

super.onClick(v);

switch (v.getId()) {

case R.id.button1:

//隐藏小圆点

Badgetor.getInstance().hideBadgeView();

break;

default:

break;

}

}

}

######4.2 activity_main.xml布局

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context="com.android.testdemo.main.MainActivity">

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginTop="20dp"

android:text="测试"

app:layout_constraintTop_toTopOf="parent"

tools:ignore="MissingConstraints"

tools:layout_editor_absoluteX="148dp" />

android:id="@+id/tv_test"

android:layout_width="wrap_content"

android:layout_height="40dp"

android:layout_marginTop="30dp"

android:text="TextView"

android:gravity="center"

android:paddingLeft="15dp"

android:paddingRight="15dp"

app:layout_constraintTop_toBottomOf="@+id/button1"

tools:layout_editor_absoluteX="163dp"

tools:ignore="MissingConstraints" />

五. 效果图和项目结构图

项目运行效果图

项目结构图

Android实现小圆点显示未读功能

注:本文著作权归作者,由demo大师代发,拒绝转载,转载需要作者授权

android 小白点代码,Android实现小圆点显示未读功能相关推荐

  1. Android实现小圆点显示未读功能

    代码地址如下: http://www.demodashi.com/demo/13541.html ####前言 以前我们实现这个功能都是用 BadgeView.java,大体就是将这个java类复制到 ...

  2. Android已读未读功能,Android实现小圆点显示未读功能

    ####前言 以前我们实现这个功能都是用 BadgeView.java,大体就是将这个java类复制到自己的项目中,然后在项目中使用,今天讲的也是一款BadgeView,我将其封装称工具类Badget ...

  3. android 应用图标 角标 显示未读消息

    Android桌面角标的适配确实是非常坑爹的需求.原生系统根本就没有这个功能,国内很多厂家效仿ios都自己定义了该功能.Android程序员就很苦逼,要适配很多机型.建议万不得已情况下还是不要进行这项 ...

  4. Android 桌面图标右上角显示未读消息数字

    背景: 在Android原生系统中,众所周知不支持桌面图标显示未读消息提醒的数字,虽然第三方控件BadgeView可以实现应用内的数字提醒.但对于系统的图标,特别是app的logo图标很难实现数字标志 ...

  5. Android 系统(257)---Launcher显示未读通知的数量

    Launcher显示未读通知的数量 请修改: /vendor/mediatek/proprietary/packages/apps/Launcher3/src/com/android/launcher ...

  6. 微信小程序定时器获取消息并在tabber按钮显示未读消息

    微信小程序定时器获取消息并在tabber按钮显示未读消息 onShow() {let that = this;this.getUserToken();wxService.setPageTitle(&q ...

  7. android底部导航栏带消息数的框架,GitHub - BarkSheep/Android-NavMenuLayout: 一个底部导航栏, 实现了显示未读消息数, 显示红点等效果的封装...

    Android-NavMenu-master 一个底部导航栏, 实现了显示未读消息数, 显示红点等效果的封装. 添加依赖 1. 在项目根目录的 build.gradle 中添加 allprojects ...

  8. Android 华为 桌面图标适配(显示未读数目)

    应用在桌面上显示未读数目,是现在许多应用普遍的做法,可惜各大厂商比没有统一标准,今天聊聊华为的桌面图标适配,分为两步: 1,申请权限 <uses-permission android:name ...

  9. Google Analytics 跟踪代码安装后状态总是显示'未安装跟踪代码'

    最近要使用Google Analytics,但是在跟踪代码安装后状态总是显示'未安装跟踪代码'!如下所示:   在Google Analytics的帮助中"排查常见的跟踪设置错误" ...

最新文章

  1. CentOS-7.0的核心安装与配置的补全
  2. 大数据,只是为了赚钱么?
  3. 推荐两款实用工具——hcache和SQLPad
  4. 脚本的力量:MSDN中一段代码的IronPython与PowerShell实现
  5. c# dataGridView与access数据库及其增删查改导出报表等
  6. @transactional可以用在controller层吗_Spring还可以这样用缓存,你知道吗?
  7. 萤火虫算法求解简单TSP问题
  8. 软考中级网络工程师学习笔记(知识点汇总)简略版
  9. eclipse插件下载及使用
  10. 关于项目文档管理,现在开始就别揪心了!DOClever让你的项目文档纵享丝滑!
  11. 为什么python胶水语言_为什么只有python成了胶水语言?
  12. 局域网常见攻击方式原理
  13. visual stadio code(VS code) 中 Markdown简明操作[持续更新]
  14. 微信小程序canvas 证件照制作
  15. 《计算之魂》思考题4.3
  16. MFC自用小工具源码
  17. SVN拉取和Excel冲突合并
  18. AD6.9原理图打印去除背景色
  19. 每周分享第 21 期
  20. 全球投资移民青睐低气候风险地,最具气候韧性国家排名前五都在北半球 | 美通社头条...

热门文章

  1. MATLAB图像变换四
  2. 维修服务器的请示,关于更换云服务器的请示
  3. 学习WPF之解决方案和项目结构
  4. 360前端星计划学习笔记0410
  5. win10全新系统安装 U盘启动
  6. al输入标题自动写作
  7. 躁!DJ 风格 Java 桌面音乐播放器
  8. 数字电路器件——门电路——与门电路、或门电路、非门电路及实例
  9. 【Yocto学习入门】01 - Yocto简介
  10. ICMP目的网络,主机,协议,端口不可达报文的Type值,Code值分别是