很多项目中都会用到控件的角标,以达到提示作用,如未读信息,剩余量等等,那么如何实现呢?这篇文章将三种方式进行实现,大家按需选择。

一、setCompoundDrawbles

textView = findViewById(R.id.message_tint);Drawable drawable = getDrawable(R.drawable.red_bubble_bg);drawable.setBounds(0,0, 16,16);textView.setCompoundDrawables(null,null, drawable, null);
setCompoundDrawbles实现效果

这种方式不适用ImageView控件,而且效果不是很好。

二、通过布局实现

1.定义右上角形状

<?xml version="1.0" encoding="utf-8"?>            

 2.布局

<?xml version="1.0" encoding="utf-8"?>        
布局实现效果

这种方式图片也适用,但是如果要实现拖拽消失功能需要定义动画。

三、BadgeView

方法说明

 code 说明
setBadgeNumber 设置Badge数字
setBadgeText 设置Badge文本
setBadgeTextSize 设置文本字体大小
setBadgeTextColor 设置文本颜色
setExactMode 设置是否显示精确模式数值
setBadgeGravity 设置Badge相对于TargetView的位置
setGravityOffset  设置外边距
setBadgePadding 设置内边距
setBadgeBackgroundColor 设置背景色
setBadgeBackground 设置背景图片
setShowShadow 设置是否显示阴影
setOnDragStateChangedListener 打开拖拽消除模式并设置监听
stroke  描边
hide  隐藏Badg

1.gradle引入

api 'q.rorbin:badgeview:1.1.3'

2.代码实现

textView = findViewById(R.id.message_tint);QBadgeView qBadgeView = new QBadgeView(this); qBadgeView.setBadgeBackgroundColor(Color.RED);qBadgeView.bindTarget(textView);qBadgeView.setBadgeText("99+");qBadgeView.setBadgeGravity(Gravity.END|Gravity.TOP);qBadgeView.setGravityOffset(1, true);qBadgeView.setBadgeTextSize(8, true);qBadgeView.setBadgePadding(5, true);qBadgeView.setOnDragStateChangedListener(new Badge.OnDragStateChangedListener() {    @Override    public void onDragStateChanged(int dragState, Badge badge, View targetView) {        if (STATE_SUCCEED == dragState){            badge.hide(true);        }    }});
Badge实现效果

还有拖拽的动画效果没有录,本人比较懒。这种方式对任何控件都适用,个人也推荐这种实现方式。

 

以上是本次分享,如有不对之处,烦请指正。分享不易,如解决您的问题,麻烦点个赞,谢谢!

更多相关文章

  1. GitHub 标星 2.5K+!教你通过玩游戏的方式学习 VIM!
  2. android 自定义下拉刷新上拉加载控件(SwipeRefreshLayout + recyc
  3. 在android浏览器中如果安装了app,则打开app,如果没有则跳转到应用
  4. Android(安卓)APP 应用分析
  5. Android的PoupWindow简单使用实例(附Demo)
  6. Flutter吸附效果
  7. Ubuntu Android(安卓)Studio快捷方式创建
  8. Android图像滤镜框架GPUImage使用(二)
  9. 自己实现个Android下仿IOS的时间选择器、时间控件Time-Selector

随机推荐

  1. Android(安卓)SQLite数据库增删改查操作
  2. 《Android面试宝典》学习笔记(第二章:布局)
  3. android:paddingLeft 和 layout_marginLe
  4. RelativeLayout相对布局实验
  5. Android 4.2启动代码分析(一)
  6. Android深入四大组件(一)应用程序启动过程
  7. android 相对定位布局方向 RelativeLayou
  8. android photoview 图片放大缩放功能 Ima
  9. Android(安卓)Service服务的相关介绍
  10. android所有控件