BarItem.java
3.52 KB
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);
}
}