直播軟體搭建,LabelList標籤選擇器

zhibo系統開發發表於2023-10-17

直播軟體搭建,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標籤選擇器,更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2989363/,如需轉載,請註明出處,否則將追究法律責任。

相關文章