直播软件搭建,LabelList标签选择器

发布时间 2023-10-17 14:15:38作者: 云豹科技-苏凌霄

直播软件搭建,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标签选择器,更多内容欢迎关注之后的文章