直播软件搭建,LabelList标签选择器
import android.content.Context;
import android.content.res.ColorStateList;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Parcelable;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
/**
* 标签列表
*/
public class LabelList extends ViewGroup implements View.OnClickListener {
private Context mContext;
private ColorStateList mTextColor;
private float mTextSize;
private Drawable mLabelBg;
private int mTextPaddingLeft;
private int mTextPaddingTop;
private int mTextPaddingRight;
private int mTextPaddingBottom;
private int mWordMargin;
private int mLineMargin;
private SelectType mSelectType;
private int mMaxSelect;
private int mMaxLines;
//用于保存label数据的key
private static final int KEY_DATA = R.id.tag_key_data;
//用于保存label位置的key
private static final int KEY_POSITION = R.id.tag_key_position;
private ArrayList<Object> mLabels = new ArrayList<>();
//保存选中的label的位置
private ArrayList<Integer> mSelectLabels = new ArrayList<>();
//保存必选项。在多选模式下,可以设置必选项,必选项默认选中,不能反选
private ArrayList<Integer> mCompulsorys = new ArrayList<>();
private OnLabelClickListener mLabelClickListener;
private OnLabelSelectChangeListener mLabelSelectChangeListener;
/**
* Label的选择类型
*/
public enum SelectType {
//不可选中,也不响应选中事件回调。(默认)
NONE(1),
//单选,可以反选。
SINGLE(2),
//单选,不可以反选。这种模式下,至少有一个是选中的,默认是第一个
SINGLE_IRREVOCABLY(3),
//多选
MULTI(4);
int value;
SelectType(int value) {
this.value = value;
}
static SelectType get(int value) {
switch (value) {
case 1:
return NONE;
case 2:
return SINGLE;
case 3:
return SINGLE_IRREVOCABLY;
case 4:
return MULTI;
}
return NONE;
}
}
以上就是 直播软件搭建,LabelList标签选择器,更多内容欢迎关注之后的文章