ios 控件徽章_一行代码给你的控件加上徽章(Badge)
不废话,先上图
BadgeView
其实在开发众多APP中,可能我们都需要用到这种BadgeView控件,以前可能是在需要的地方加个图标上去,这样每次有这样的需求的时候就需要在布局里写个控件上去,很麻烦。网上看了其他库也是在封装成一个父布局控件,在XML里面还需要写一次。后面想能不能不用绑定布局直接以一种最简单的办法加上这个徽章。于是我的BadgeView诞生了。
先说使用方法
复杂一点的写法:
BadgeFactory.create(this) .setTextColor(Color.White) .setWidthAndHeight(25,25) .setBadgeBackground(Color.Red) .setTextSize(10) .setBadgeGravity(Gravity.Right|Gravity.Top) .setBadgeCount(20) .setShape(BadgeView.SHAPE_CIRCLE) .setSpace(10,10) //设置绑定的view和badgeview之间的空隙 .bind(view);
BadgeFactory内置了几个封装好的构造方法,可以直接一步到位,于是:
BadgeFactory.createDot(this).setBadgeCount(20).bind(imageView); BadgeFactory.createCircle(this).setBadgeCount(20).bind(imageView); BadgeFactory.createRectangle(this).setBadgeCount(20).bind(imageView); BadgeFactory.createOval(this).setBadgeCount(20).bind(imageView); BadgeFactory.createSquare(this).setBadgeCount(20).bind(imageView); BadgeFactory.createRoundRect(this).setBadgeCount(20).bind(imageView);
是不是觉得很简单多了,不再需要写进XML布局。当你需要取消绑定的时候直接调用
badgeView.unbind();
原理
其实原理也很简单,首先判断要绑定的view是否有父布局包裹着,有就取出view,将view和badgeview包裹一起之后再放回去。
先取出view并判断在父布局中的位置
ViewGroupparentContainer=(ViewGroup) view.getParent(); int viewIndex=((ViewGroup) view.getParent()).indexOfChild(view); ((ViewGroup) view.getParent()).removeView(view);
然后设置一些宽高位置属性之后(代码太多就不贴了),最后将两个view放进一个FrameLayout里面,然后FrameLayout添加进原来的布局中。
container.addView(view); container.addView(this); parentContainer.addView(container, viewIndex);
ios 控件徽章_一行代码给你的控件加上徽章(Badge)相关推荐
- android 获取控件高度_安卓开发入门教程UI控件_ImageView
什么是ImageView ImageView是用于显示图片的UI控件. 基础样例 1.展示本地图片 效果图 代码 <ImageViewandroid:layout_width="wra ...
- android 获取控件高度_安卓开发入门教程UI控件_ProgressBar
什么是ProgressBar ProgressBar是用于提示用户进行等待的UI控件,. 基础样例 1.loading图 效果图 代码 布局文件代码 <ProgressBarandroid:id ...
- http代码_一行代码就可以实现HTTP文件服务器,他为什么写了150行?
互联网已经发展了20多年,web技术早已经不是什么新消息,现在更多的程序员讨论的都是web框架,技术框架,高可用框架等.在框架的背后,其实还是要了解最底层的核心内容,比如TCP/IP协议怎么回事,HT ...
- datatables 一行数据生成两行_一行代码搞定分组回归
写 在前面 在目前为止所有小伙伴们向大猫请教过的R问题中,大猫总结了最常遇见同时也是比较难的三个问题,分别是(1)事件研究法:(2)分组回归:(3)滚动回归.事件研究法在第一期中已经讲述,本期我们就来 ...
- 灰色的rgb值_一行代码实现图片的灰色效果
今天是清明节,警笛长鸣,万众默哀.送别英雄,生活继续. 大部分的app配图,今天都是灰色.这种图片的转换在python里非常容易实现.一行代码搞定. 下面是DE8UG上次说个故事:再见VB.你好,精彩 ...
- mapbox 修改初始位置_一行代码教你如何随心所欲初始化Bert参数(附Pytorch代码详细解读)...
微信公众号:NLP从入门到放弃 微信文章在这里(排版更漂亮,但是内置链接不太行,看大家喜欢哪个点哪个看吧): 一行代码带你随心所欲重新初始化bert的参数(附Pytorch代码详细解读)mp.wei ...
- 局域网怎么查看单位摄像头_一行代码,实现多平台文件查看传输!
几个不错的通过网站传输文件的工具,其实了解python的朋友可能都知道,借助它,只需要输入一行代码,就可以将电脑变成一台服务器,局域网内的任何能上网的工具都能够查看和下载电脑中的文件. 方法很简单,可 ...
- 为了提高python代码运行速度和进行_一行代码让你的python运行速度提高100倍
Python用的好,猪也能飞起来.今天,带大家学习如何让Python飞起来的方法,干货满满哦! python一直被病垢运行速度太慢,但是实际上python的执行效率并不慢,慢的是python用的解释器 ...
- 当当网电子书能打印吗_一行代码就能写一个日志打印组件,你信吗?为你揭晓RTOS中日志打印组件的核心
1. 做实验引发的思考 在学习LiteOS日志打印组件使用的时候,我记录了一篇博客:atiny_log | LiteOS 物联网操作系统中的日志打印组件使用分享,关于实验的具体内容,请阅读这篇博客(点 ...
最新文章
- [01]EXTJS4.0的概述和HELLOWORD程序
- 利用Maven搭建Spring开发环境 【转】
- 【DP、线段树优化】琪露诺
- formate JAVA_JAVA String.format 方法使用
- Django手写登录装饰器
- MySQL分布式ID_分布式唯一ID系列(3)——数据库自增ID机制适合做分布式ID吗
- Android平台和java平台 DES加密解密互通程序及其不能互通的原因
- sql服务器默认密码_搭建一个DNS服务器,轻松实现域名解析内容分发,访问速度提高N倍...
- 在 Chrome 控制台可以玩的两个骚操作,你知道吗?
- 何冲(为奥运冠军名字作诗)
- leetcode 19
- 拓端tecdat|R语言用Rcpp加速Metropolis-Hastings抽样估计贝叶斯逻辑回归模型的参数
- [论文]鲁棒的对抗性强化学习
- 高等代数 :1 线性方程组的解法
- 前端框架,库,组件,插件,控件的理解
- 机器学习:线性回归以及非线性回归
- 更新Qt Creator版本后打开之前的项目,只有.Pro的问题.
- 光场相机1.0与光场相机2.0
- Python+Vue计算机毕业设计在线教育平台1ldd7(程序+LW+源码+部署)
- SuppressWarnings
热门文章
- STM32工作笔记0013---认识UCOS系统
- java工作笔记018---java中BigDecimal小数位数的四舍五入等操作
- Ubuntu系统安装vmwaretools时the path is not a valid path to the 3.13
- static变量和static函数的用法摘抄
- 介绍目前计算机网络的新技术,当前计算机网络技术实验室建设现状及方向
- 提高代码的运行效率 (4)
- json 取值判断_对应后台传json ajax 获取值判断
- 滚动后mouseleave失效_大型调心滚子轴承偏载失效案例详情
- pv原语模拟实现_HART协议压力变送器硬件设计及实现
- 惠普服务器c盘格式化提示win7系统盘,通过U盘重装系统,已经格式化C盘提示如下...