android 小白点代码,Android实现小圆点显示未读功能
####前言 以前我们实现这个功能都是用 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实现小圆点显示未读功能相关推荐
- Android实现小圆点显示未读功能
代码地址如下: http://www.demodashi.com/demo/13541.html ####前言 以前我们实现这个功能都是用 BadgeView.java,大体就是将这个java类复制到 ...
- Android已读未读功能,Android实现小圆点显示未读功能
####前言 以前我们实现这个功能都是用 BadgeView.java,大体就是将这个java类复制到自己的项目中,然后在项目中使用,今天讲的也是一款BadgeView,我将其封装称工具类Badget ...
- android 应用图标 角标 显示未读消息
Android桌面角标的适配确实是非常坑爹的需求.原生系统根本就没有这个功能,国内很多厂家效仿ios都自己定义了该功能.Android程序员就很苦逼,要适配很多机型.建议万不得已情况下还是不要进行这项 ...
- Android 桌面图标右上角显示未读消息数字
背景: 在Android原生系统中,众所周知不支持桌面图标显示未读消息提醒的数字,虽然第三方控件BadgeView可以实现应用内的数字提醒.但对于系统的图标,特别是app的logo图标很难实现数字标志 ...
- Android 系统(257)---Launcher显示未读通知的数量
Launcher显示未读通知的数量 请修改: /vendor/mediatek/proprietary/packages/apps/Launcher3/src/com/android/launcher ...
- 微信小程序定时器获取消息并在tabber按钮显示未读消息
微信小程序定时器获取消息并在tabber按钮显示未读消息 onShow() {let that = this;this.getUserToken();wxService.setPageTitle(&q ...
- android底部导航栏带消息数的框架,GitHub - BarkSheep/Android-NavMenuLayout: 一个底部导航栏, 实现了显示未读消息数, 显示红点等效果的封装...
Android-NavMenu-master 一个底部导航栏, 实现了显示未读消息数, 显示红点等效果的封装. 添加依赖 1. 在项目根目录的 build.gradle 中添加 allprojects ...
- Android 华为 桌面图标适配(显示未读数目)
应用在桌面上显示未读数目,是现在许多应用普遍的做法,可惜各大厂商比没有统一标准,今天聊聊华为的桌面图标适配,分为两步: 1,申请权限 <uses-permission android:name ...
- Google Analytics 跟踪代码安装后状态总是显示'未安装跟踪代码'
最近要使用Google Analytics,但是在跟踪代码安装后状态总是显示'未安装跟踪代码'!如下所示: 在Google Analytics的帮助中"排查常见的跟踪设置错误" ...
最新文章
- CentOS-7.0的核心安装与配置的补全
- 大数据,只是为了赚钱么?
- 推荐两款实用工具——hcache和SQLPad
- 脚本的力量:MSDN中一段代码的IronPython与PowerShell实现
- c# dataGridView与access数据库及其增删查改导出报表等
- @transactional可以用在controller层吗_Spring还可以这样用缓存,你知道吗?
- 萤火虫算法求解简单TSP问题
- 软考中级网络工程师学习笔记(知识点汇总)简略版
- eclipse插件下载及使用
- 关于项目文档管理,现在开始就别揪心了!DOClever让你的项目文档纵享丝滑!
- 为什么python胶水语言_为什么只有python成了胶水语言?
- 局域网常见攻击方式原理
- visual stadio code(VS code) 中 Markdown简明操作[持续更新]
- 微信小程序canvas 证件照制作
- 《计算之魂》思考题4.3
- MFC自用小工具源码
- SVN拉取和Excel冲突合并
- AD6.9原理图打印去除背景色
- 每周分享第 21 期
- 全球投资移民青睐低气候风险地,最具气候韧性国家排名前五都在北半球 | 美通社头条...