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.定义右上角形状



 2.布局


布局实现效果

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

三、BadgeView

方法说明

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

1.gradle引入

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实现效果

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

 

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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部