labelview

介绍:

有时,我们需要在ImageView(或者任意view)的左上角或者其他角显示一个勋章标记之类的贴片。LabelView可以帮助你完成这个功能。

运行效果:

使用说明:

导入

LabelView.java 拷贝到你的项目。

创建Label

LabelView继承自TextView,因此你可以将其当作TextView,使用TextView的任意方法。

LabelView label = new LabelView(this);
label.setText("POP");
label.setBackgroundColor(0xff03a9f4);
label.setTargetView(findViewById(R.id.text), 10, LabelView.Gravity.LEFT_TOP);

设置目标view

setTargetView(findViewById(R.id.text), 10, LabelView.Gravity.LEFT_TOP)

第二个参数申明了底部view边缘与LabelView之间的距离(dip为单位)

img2.png

 第三个参数申明了LabelView在底部view上的相对位置(只有左上角和右上角两种)。

删除LabelView

你还可以删除LabelView

label.remove();

BaseAdpter中使用LabelView

如果你要在BaseAdpter中使用LabelView,并且想重用convertView,必须手动为label添加id

public View getItemView(int position, View convertView, ViewHolder holder) {
    ......
    // you have to generate label ID manual
    LabelView label = holder.getView(12345);
    if (label == null) {
        label = new LabelView(this);
        label.setId(12345);
        label.setBackgroundColor(0xffE91E63);
        label.setTargetViewInBaseAdapter(imageView, 138, 10, LabelView.Gravity.LEFT_TOP);
    }
    label.setText(your data);
    return convertView;
}

setTargetViewInBaseAdapter 参数

第二个参数是targetView的宽度(单位dip)

已下载
0