fac86401
 
  孙向锦
 
初始化C5 Vote
 | 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128 
 | 
  package com.sunvote.statusbar.view;
  
  import android.annotation.SuppressLint;
  import android.content.Context;
  import android.content.res.TypedArray;
  import android.graphics.drawable.Drawable;
  import android.util.AttributeSet;
  import android.view.LayoutInflater;
  import android.view.View;
  import android.widget.ImageView;
  import android.widget.LinearLayout;
  import android.widget.TextView;
  
  import me.kaini.statusbar.R;
  
  
  /**
   * 状态栏单个项[图标,文字]
   * {@link #setIcon(int)}变更图标
   * {@link #setText(int)}变更文字,{@link #setTextColor(int)}设置文字颜色,默认白色
   * {@link #setBarItemClickListener(OnBarItemClickListener)} 设置单个项单击监听
   * @author
   */
  public class BarItem extends LinearLayout{
  
      private ImageView mIcon;
      private TextView mText;
  
      private int textVisibility = View.VISIBLE;
  
      private OnBarItemClickListener mListener;
  
      public BarItem(Context context) {
          this(context, null);
      }
  
      public BarItem(Context context, AttributeSet attrs) {
          this(context, attrs, 0);
      }
  
      @SuppressLint("NewApi")
      public BarItem(Context context, AttributeSet attrs, int defStyle) {
          super(context, attrs, defStyle);
  
          initItem(context, attrs, defStyle);
      }
  
      private void initItem(Context ctx, AttributeSet attrs, int defStyle){
          LayoutInflater ll = (LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
          View v = ll.inflate(R.layout.bar_item, null);
          addView(v);
  
          mIcon = (ImageView)findViewById(R.id.iv_bar_icon );
          mText = (TextView)findViewById(R.id.tv_bar_text);
  
          TypedArray a = ctx.obtainStyledAttributes(attrs, R.styleable.BarItem, defStyle, 0);
          Drawable icon = a.getDrawable(R.styleable.BarItem_android_icon);
          setIcon(icon);
  
          CharSequence txt = a.getText(R.styleable.BarItem_android_text);
          if(txt != null){
              setText(txt.toString());
          }
  
          int textColor = a.getColor(R.styleable.BarItem_android_textColor, getResources().getColor(android.R.color.white));
          setTextColor(textColor);
  
          textVisibility = a.getInt(R.styleable.BarItem_textVisibility, textVisibility);
          setTextVisibility(textVisibility);
  
          a.recycle();
      }
  
      public void setIcon(Drawable icon){
          if(icon == null){
              return;
          }
          this.mIcon.setImageDrawable(icon);
      }
  
      public void setIcon(int resId){
          setIcon(getResources().getDrawable(resId));
      }
  
      public void setText(int resId){
          setText(getResources().getString(resId));
      }
  
      public void setText(String text){
          this.mText.setText(text);
      }
  
      public void setTextColor(int textColor){
          mText.setTextColor(textColor);
      }
  
      /**
       * 设置文字的可见状态
       * @param visibility {@link View#GONE},{@link View#VISIBLE}
       * @attr R.styleable.BarItem_textVisibility
       */
      public void setTextVisibility(int visibility){
          mText.setVisibility(visibility);
      }
  
      /**
       * 设置图标单击事件监听器
       * @param l
       */
      public void setBarItemClickListener(OnBarItemClickListener l){
          this.mListener = l;
          setOnClickListener(new OnClickListener() {
              @Override
              public void onClick(View v) {
                  if (mListener != null) {
                      mListener.onClick(BarItem.this);
                  }
              }
          });
      }
  
      /**
       * BarItem click event
       */
      public interface OnBarItemClickListener {
          void onClick(BarItem item);
      }
  }
 
 |