Android实现小圆点显示未读功能
代码地址如下:
http://www.demodashi.com/demo/13541.html
####前言
以前我们实现这个功能都是用 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;@Overrideprotected int getContentViewId() {return R.layout.activity_main;}@Overrideprotected void initData() {//设置文字大小8spBadgetor.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);//设置外边距2dpBadgetor.getInstance().setOffset(2);//设置内边距2dpBadgetor.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();}@Overrideprotected void setListener() {mBtnText.setOnClickListener(this);Badgetor.getInstance().setOnDragStateChangedListener(new Badge.OnDragStateChangedListener() {@Overridepublic void onDragStateChanged(int dragState, Badge badge, View targetView) {//此处处理拖曳结束后的逻辑//......}});}@Overridepublic 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布局
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"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"><Buttonandroid: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" /><TextViewandroid: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.support.constraint.ConstraintLayout>
五. 效果图和项目结构图
项目运行效果图
项目结构图
Android实现小圆点显示未读功能
代码地址如下:
http://www.demodashi.com/demo/13541.html
注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权
Android实现小圆点显示未读功能相关推荐
- android 小白点代码,Android实现小圆点显示未读功能
####前言 以前我们实现这个功能都是用 BadgeView.java,大体就是将这个java类复制到自己的项目中,然后在项目中使用,今天讲的也是一款BadgeView,我将其封装称工具类Badget ...
- Android已读未读功能,Android实现小圆点显示未读功能
####前言 以前我们实现这个功能都是用 BadgeView.java,大体就是将这个java类复制到自己的项目中,然后在项目中使用,今天讲的也是一款BadgeView,我将其封装称工具类Badget ...
- Android 桌面图标右上角显示未读消息数字
背景: 在Android原生系统中,众所周知不支持桌面图标显示未读消息提醒的数字,虽然第三方控件BadgeView可以实现应用内的数字提醒.但对于系统的图标,特别是app的logo图标很难实现数字标志 ...
- Android系统 应用图标显示未读消息数(BadgeNumber) 桌面app图标的角标显示
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/51082574 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...
- android图标未读消息,Android系统 应用图标显示未读消息数(BadgeNumber) 桌面app图标的角标显示...
原理 添加角标的原理就是发送一个Broadcast(广播),在广播的Intent中指定需要被添加角标的应用的packageName(包名),className(类名),count(角标数目).当然了, ...
- Android系统 应用图标显示未读消息数(BadgeNumber) 桌面app图标的角标显示
http://www.51itong.net/android-badgenumber-9789.html
- android 应用图标 角标 显示未读消息
Android桌面角标的适配确实是非常坑爹的需求.原生系统根本就没有这个功能,国内很多厂家效仿ios都自己定义了该功能.Android程序员就很苦逼,要适配很多机型.建议万不得已情况下还是不要进行这项 ...
- 微信小程序定时器获取消息并在tabber按钮显示未读消息
微信小程序定时器获取消息并在tabber按钮显示未读消息 onShow() {let that = this;this.getUserToken();wxService.setPageTitle(&q ...
- android底部导航栏带消息数的框架,GitHub - BarkSheep/Android-NavMenuLayout: 一个底部导航栏, 实现了显示未读消息数, 显示红点等效果的封装...
Android-NavMenu-master 一个底部导航栏, 实现了显示未读消息数, 显示红点等效果的封装. 添加依赖 1. 在项目根目录的 build.gradle 中添加 allprojects ...
最新文章
- Jupyter notebook与Spyder集成
- 文字加减前后缀lisp_华为笔试题---仿LISP算法
- 数据算法——Spark的TopN实现
- 2016/11/10 kettle概述
- Java迭代器contains的问题
- 前端基础进阶(十):面向对象实战之封装拖拽对象
- npm 全局安装vuecli报错_前端脚手架CLI生成模版命令工具(包括,npm包的发布,脚手架的搭建,注意事项,优化等)...
- java计算器 运算符优先级_跪求大神帮忙,怎样在java 计算器中实现,四则运算优先级;...
- c语言第五章137页题目及答案,(完整版)C语言程序设计教程第五章练习题题目
- 黑苹果mac未能安装在你的电脑上_经历了无数次失败以后,我终于“吃”上了黑苹果,经验分享!...
- L1-028 判断素数 (10 分)—团体程序设计天梯赛
- oracle的游标的属性,Oracle 游标属性
- Codeforces 448 D. Multiplication Table
- 使用python判断文件是否是excel格式
- 怎么使用计算机公式,在excel怎么运用计算公式进行运算?
- element时间组件在苹果回显无效果
- python解决猴子偷桃问题_猴子偷桃蟠桃园土地是知道的,不举报是不敢吗?
- python 行情数据,拼多多股票:Python获取股票行情数据的一种方法
- android实现发送短信的功能
- 触动精灵怎么向服务器发送消息,触动精灵 函数说明及使用方法
热门文章
- 【嵌入式Linux】嵌入式Linux应用开发基础知识之网络通信
- squid 的配置详解 (转)--SeriesI
- 运营管理整改报告范文_整改报告怎么写(安全检查整改报告范文)
- java 如何结束线程_java中,如何安全的结束一个正在运行的线程?
- mysql可视化一月多少钱_最便宜mysql可视化
- centos没有可用软件包 mysql-server_centos7解决yum install mysql-server没有可用包?
- KNN算法(K近邻学习)
- iosalipay_iOS支付宝支付主要代码
- 《深入理解 Spring Cloud 与微服务构建》第十七章 使用 Spring Cloud OAuth2 保护微服务系统
- 利用flex让页脚自适应置底显示