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

一、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"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"><corners android:radius="180dip" /><solid android:color="#FF0000" /><paddingandroid:left="4dip"android:right="4dip" />
</shape>

2.布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:layout_marginTop="50dp"><TextViewandroid:id="@+id/message_tint"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="20sp"android:text="hello"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_toRightOf="@+id/message_tint"android:gravity="center"android:background="@drawable/red_bubble_bg"android:text="1"android:textColor="#FFFFFF"android:textSize="10sp"/></RelativeLayout>

布局实现效果

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

三、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() {@Overridepublic void onDragStateChanged(int dragState, Badge badge, View targetView) {if (STATE_SUCCEED == dragState){badge.hide(true);}}
});

Badge实现效果

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

Android 控件右上角角标的实现方案相关推荐

  1. android上传文件用哪个布局,每周总结20130821——android控件的尺寸、http文件上传...

    Android控件的尺寸 android开发中,可以通过编写XML格式的布局文件来实现布局,也可以用纯代码进行布局,通常都是选择XML文件布局.在XML布局文件中,与控件的尺寸有关的属性有androi ...

  2. android控件的touch事件_聊聊Android嵌套滑动

    聊聊Android嵌套滑动 最近工作中遇到了需求是使用 Bottom-Sheet 交互的弹窗,使用了 design 包里面的 CoordinatorLayout 和 BottomSheetBehavi ...

  3. Android 控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现

    Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现 关注finddreams:http://blog.csdn.net/finddreams/articl ...

  4. Android 控件 RecyclerView 看这篇就够了

    [Android 控件 RecyclerView] 概述 RecyclerView是什么 从Android 5.0开始,谷歌公司推出了一个用于大量数据展示的新控件RecylerView,可以用来代替传 ...

  5. Android 控件 RecyclerView

    [Android 控件 RecyclerView] 概述 RecyclerView是什么 从Android 5.0开始,谷歌公司推出了一个用于大量数据展示的新控件RecylerView,可以用来代替传 ...

  6. android 控件 堆叠_每次在Android上正确地向后堆叠

    android 控件 堆叠 When navigating in a mobile app, the screens opened after one another form a stack, th ...

  7. Android控件点击圆形阴影反馈解决方案

    Android控件点击圆形阴影反馈解决方案 愿景 对于手机App而言,没有反馈效果的按钮使用体验是不舒服的.最近在深入学习Material Design,对其中的ripple效果比较感兴趣.我想着尝试 ...

  8. 【079】用代码来创建 Android 控件

    一般来说我们在创建控件的时候都是在 XML 文件中完成的, 实施起来还是蛮方便的, 而且修改起来也可以很快的看见效果, 但是有一个很大的劣势就是没办法动态的创建控件, 举个例子, 例如我从数据库中取出 ...

  9. Android 控件架构及View、ViewGroup的测量

    附录:示例代码地址 控件在Android开发的过程中是必不可少的,无论是我们在使用系统控件还是自定义的控件.下面我们将讲解一下Android的控件架构,以及如何实现自定义控件. 1.Android控件 ...

最新文章

  1. gb2312转utf-8linux,linux GB2312转UTF-8 shell脚本
  2. 字节跳动获CVPR2021 细粒度图像竞赛双料冠军
  3. 用python画蝴蝶_图形化编程经验分享,画笔基础,软件包括Python、Kittenblock
  4. oracle中xml如何存储过程,oracle存储过程生成xml文件
  5. java中线程的状态以及线程栈分析
  6. 6-4 开班简介1
  7. [转]关于jQuery性能优化
  8. 我的2009:知识管理篇
  9. 电工技术(3)—电路的分析方法二
  10. Java泛型方法解惑
  11. 获取微信商户平台操作证书
  12. 关于Name和Caption属性的理解
  13. hp服务器修改raid,HP服务器RAID设置方法介绍
  14. 安徽省大数据与人工智能竞赛经验分享-3【从赛题中分析比赛需要的技能】
  15. 输入整数显示ASCII字符(c++)
  16. SVN命令使用提示版本过旧的问题E155019
  17. 安全日记—零基础开始学安全(3)
  18. unrecongnized workspace file version : 未識別的工作空間文件版本
  19. ①编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符。②集合A、B的差集③对分行输入的若干字符串按字典序(由小到大)进行排序并输出。
  20. 基于Singer映射和参数位置自适应更新机制的改进被囊群算法

热门文章

  1. CloudFlare域名管理系统
  2. 个人总结 高阶PLSQL 数据库编程
  3. C语言函数实现ascii码快速查询
  4. vs2013怎么清理解决方案_vs2010/2013项目所在文件夹越来越大如何解决?
  5. SQL Developer连接时报错:ORA-12528
  6. RDIFramework.NET 框架之组织机构权限设置
  7. 国际版阿里云短信对接
  8. SQLSERVER不借助代理:本地备份、异地备份
  9. 如何将EXCEL表格的内容导入到CDR中?
  10. ubuntu双系统命令行访问win盘