项目开发中,有时候我们需要在ImageView(或者任意view)的左上角或者其他角显示一个勋章标记之类的贴片。
如果需要我们编写代码,有一定的工作量的。LabelView可以帮助我们轻松完成这个功能。
运行效果:
使用说明:
1、添加依赖
1 dependencies {
2 compile 'com.github.linger1216:labelview:v1.1.2'
3 }
2、创建Label
LabelView继承自TextView,因此你可以将其当作TextView,使用TextView的任意方法。
1 LabelView label = new LabelView(this);
2 label.setText("POP");
3 label.setBackgroundColor(0xff03a9f4);
4 label.setTargetView(findViewById(R.id.text), 10, LabelView.Gravity.LEFT_TOP);
设置目标view
1 setTargetView(findViewById(R.id.text), 10, LabelView.Gravity.LEFT_TOP)
第二个参数申明了底部view边缘与LabelView之间的距离(dip为单位)
删除LabelView
你还可以删除LabelView
label.remove();
BaseAdpter中使用LabelView
如果你要在BaseAdpter中使用LabelView,并且想重用convertView,必须手动为label添加id
1public View getItemView(int position, View convertView, ViewHolder holder) {
2// you have to generate label ID manual
3LabelView label = holder.getView(12345);
4if (label == null) {
5 label = new LabelView(this);
6 label.setId(12345);
7 label.setBackgroundColor(0xffE91E63);
8 label.setTargetViewInBaseAdapter(imageView, 138, 10, LabelView.Gravity.LEFT_TOP);
9}
10label.setText(your data);
11return convertView;
12 }
setTargetViewInBaseAdapter 参数
第二个参数是targetView的宽度(单位dip)
项目地址: https://github.com/linger1216/labelview
作者:linger1216
感谢原作者的分享。
【END】
往期精选推荐
更多精彩内容,长按二维码,识别关注