Android 控件右上角角标的实现方案
很多项目中都会用到控件的角标,以达到提示作用,如未读信息,剩余量等等,那么如何实现呢?这篇文章将三种方式进行实现,大家按需选择。
一、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 控件右上角角标的实现方案相关推荐
- android上传文件用哪个布局,每周总结20130821——android控件的尺寸、http文件上传...
Android控件的尺寸 android开发中,可以通过编写XML格式的布局文件来实现布局,也可以用纯代码进行布局,通常都是选择XML文件布局.在XML布局文件中,与控件的尺寸有关的属性有androi ...
- android控件的touch事件_聊聊Android嵌套滑动
聊聊Android嵌套滑动 最近工作中遇到了需求是使用 Bottom-Sheet 交互的弹窗,使用了 design 包里面的 CoordinatorLayout 和 BottomSheetBehavi ...
- Android 控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现
Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现 关注finddreams:http://blog.csdn.net/finddreams/articl ...
- Android 控件 RecyclerView 看这篇就够了
[Android 控件 RecyclerView] 概述 RecyclerView是什么 从Android 5.0开始,谷歌公司推出了一个用于大量数据展示的新控件RecylerView,可以用来代替传 ...
- Android 控件 RecyclerView
[Android 控件 RecyclerView] 概述 RecyclerView是什么 从Android 5.0开始,谷歌公司推出了一个用于大量数据展示的新控件RecylerView,可以用来代替传 ...
- android 控件 堆叠_每次在Android上正确地向后堆叠
android 控件 堆叠 When navigating in a mobile app, the screens opened after one another form a stack, th ...
- Android控件点击圆形阴影反馈解决方案
Android控件点击圆形阴影反馈解决方案 愿景 对于手机App而言,没有反馈效果的按钮使用体验是不舒服的.最近在深入学习Material Design,对其中的ripple效果比较感兴趣.我想着尝试 ...
- 【079】用代码来创建 Android 控件
一般来说我们在创建控件的时候都是在 XML 文件中完成的, 实施起来还是蛮方便的, 而且修改起来也可以很快的看见效果, 但是有一个很大的劣势就是没办法动态的创建控件, 举个例子, 例如我从数据库中取出 ...
- Android 控件架构及View、ViewGroup的测量
附录:示例代码地址 控件在Android开发的过程中是必不可少的,无论是我们在使用系统控件还是自定义的控件.下面我们将讲解一下Android的控件架构,以及如何实现自定义控件. 1.Android控件 ...
最新文章
- gb2312转utf-8linux,linux GB2312转UTF-8 shell脚本
- 字节跳动获CVPR2021 细粒度图像竞赛双料冠军
- 用python画蝴蝶_图形化编程经验分享,画笔基础,软件包括Python、Kittenblock
- oracle中xml如何存储过程,oracle存储过程生成xml文件
- java中线程的状态以及线程栈分析
- 6-4 开班简介1
- [转]关于jQuery性能优化
- 我的2009:知识管理篇
- 电工技术(3)—电路的分析方法二
- Java泛型方法解惑
- 获取微信商户平台操作证书
- 关于Name和Caption属性的理解
- hp服务器修改raid,HP服务器RAID设置方法介绍
- 安徽省大数据与人工智能竞赛经验分享-3【从赛题中分析比赛需要的技能】
- 输入整数显示ASCII字符(c++)
- SVN命令使用提示版本过旧的问题E155019
- 安全日记—零基础开始学安全(3)
- unrecongnized workspace file version : 未識別的工作空間文件版本
- ①编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符。②集合A、B的差集③对分行输入的若干字符串按字典序(由小到大)进行排序并输出。
- 基于Singer映射和参数位置自适应更新机制的改进被囊群算法