Android 图标上面添加提醒使用开源UI类库 Viewbadger

Viewbadger

1.BadgeView主要是继承了TextView,所以实际上就是一个TextView,底层放了一个label,可以自定义背景图,自定义背景颜色,是否显示,显示进入的动画效果以及显示的位置等等

2.BadgeView是一个GitHub开源的项目,下载地址是:https://github.com/jgilfelt/android-viewbadger

3.这个开源项目引用的方法很简单把android-viewbadger.jar引入到项目中就可以直接使用了,它提供的Demo已经很直接把用法都写出来了,用起来很方便的,对TabHost提供了特殊的支持。

下面是提供的Demo中使用图片:

Android 图标上面添加提醒使用开源UI类库 Viewbadger         Android 图标上面添加提醒使用开源UI类库 Viewbadger        Android 图标上面添加提醒使用开源UI类库 Viewbadger

 

4.demo中对应的效果代码这些一看就明白了:

  1 public class DemoActivity extends TabActivity {
  2     
  3     private static final String[] DATA = Cheeses.sCheeseStrings;
  4     
  5     Button btnPosition;
  6     Button btnColour;
  7     Button btnAnim1;
  8     Button btnAnim2;
  9     Button btnCustom;
 10     Button btnClick;
 11     Button btnTab;
 12     Button btnIncrement;
 13     
 14     ListView listDemo;
 15     
 16     BadgeView badge1;
 17     BadgeView badge2;
 18     BadgeView badge3;
 19     BadgeView badge4;
 20     BadgeView badge5;
 21     BadgeView badge6;
 22     BadgeView badge7;
 23     BadgeView badge8;
 24     
 25     @Override
 26     public void onCreate(Bundle savedInstanceState) {
 27         super.onCreate(savedInstanceState);
 28         setContentView(R.layout.main);
 29         
 30         final TabHost tabHost = getTabHost();
 31 
 32         tabHost.addTab(tabHost.newTabSpec("demos")
 33                 .setIndicator("Badge Demos")
 34                 .setContent(R.id.tab1));
 35 
 36         tabHost.addTab(tabHost.newTabSpec("adapter")
 37                 .setIndicator("List Adapter")
 38                 .setContent(R.id.tab2));
 39         
 40         tabHost.addTab(tabHost.newTabSpec("tests")
 41                 .setIndicator("Layout Tests")
 42                 .setContent(R.id.tab3));
 43        
 44         // *** default badge ***
 45         
 46         View target = findViewById(R.id.default_target);
 47         BadgeView badge = new BadgeView(this, target);
 48         badge.setText("1");
 49         badge.show();
 50         
 51         // *** set position ***
 52         
 53         btnPosition = (Button) findViewById(R.id.position_target);
 54         badge1 = new BadgeView(this, btnPosition);
 55         badge1.setText("12");
 56         badge1.setBadgePosition(BadgeView.POSITION_CENTER);
 57         btnPosition.setOnClickListener(new OnClickListener() {
 58             @Override
 59             public void onClick(View v) {
 60                 badge1.toggle();
 61             }
 62         });
 63         
 64         // *** badge/text size & colour ***
 65         
 66         btnColour = (Button) findViewById(R.id.colour_target);
 67         badge2 = new BadgeView(this, btnColour);
 68         badge2.setText("New!");
 69         badge2.setTextColor(Color.BLUE);
 70         badge2.setBadgeBackgroundColor(Color.YELLOW);
 71         badge2.setTextSize(12);
 72         btnColour.setOnClickListener(new OnClickListener() {
 73             @Override
 74             public void onClick(View v) {
 75                 badge2.toggle();
 76             }
 77         });
 78         
 79         // *** default animation ***
 80         
 81         btnAnim1 = (Button) findViewById(R.id.anim1_target);
 82         badge3 = new BadgeView(this, btnAnim1);
 83         badge3.setText("84");
 84         btnAnim1.setOnClickListener(new OnClickListener() {
 85             @Override
 86             public void onClick(View v) {
 87                 badge3.toggle(true);
 88             }
 89         });
 90         
 91         // *** custom animation ***
 92         
 93         btnAnim2 = (Button) findViewById(R.id.anim2_target);
 94         badge4 = new BadgeView(this, btnAnim2);
 95         badge4.setText("123");
 96         badge4.setBadgePosition(BadgeView.POSITION_TOP_LEFT);
 97         badge4.setBadgeMargin(15, 10);
 98         badge4.setBadgeBackgroundColor(Color.parseColor("#A4C639"));
 99         btnAnim2.setOnClickListener(new OnClickListener() {
100             @Override
101             public void onClick(View v) {
102                 TranslateAnimation anim = new TranslateAnimation(-100, 0, 0, 0);
103                 anim.setInterpolator(new BounceInterpolator());
104                 anim.setDuration(5000);
105                 badge4.toggle(anim, null);
106             }
107         });
108         
109         // *** custom background ***
110         
111         btnCustom = (Button) findViewById(R.id.custom_target);
112         badge5 = new BadgeView(this, btnCustom);
113         badge5.setText("37");
114         badge5.setBackgroundResource(R.drawable.badge_ifaux);
115         badge5.setTextSize(16);
116         btnCustom.setOnClickListener(new OnClickListener() {
117             @Override
118             public void onClick(View v) {
119                 badge5.toggle(true);
120             }
121         });
122         
123         // *** clickable badge ***
124         
125         btnClick = (Button) findViewById(R.id.click_target);
126         badge6 = new BadgeView(this, btnClick);
127         badge6.setText("click me");
128         badge6.setBadgeBackgroundColor(Color.BLUE);
129         badge6.setTextSize(16);
130         badge6.setOnClickListener(new OnClickListener() {
131             @Override
132             public void onClick(View v) {
133                 Toast.makeText(DemoActivity.this, "clicked badge", Toast.LENGTH_SHORT).show();
134             }
135         });
136         btnClick.setOnClickListener(new OnClickListener() {
137             @Override
138             public void onClick(View v) {
139                 badge6.toggle();
140             }
141         });
142         
143         // *** tab ***
144         
145         TabWidget tabs = (TabWidget) findViewById(android.R.id.tabs);
146         
147         btnTab = (Button) findViewById(R.id.tab_btn);
148         badge7 = new BadgeView(this, tabs, 0);
149         badge7.setText("5");
150         btnTab.setOnClickListener(new OnClickListener() {
151             @Override
152             public void onClick(View v) {
153                 badge7.toggle();
154             }
155         });
156         
157         // *** increment ***
158         
159         btnIncrement = (Button) findViewById(R.id.increment_target);
160         badge8 = new BadgeView(this, btnIncrement);
161         badge8.setText("0");
162         btnIncrement.setOnClickListener(new OnClickListener() {
163             @Override
164             public void onClick(View v) {
165                 if (badge8.isShown()) {
166                     badge8.increment(1);
167                 } else {
168                     badge8.show();
169                 }
170             }
171         });
172         
173         // *** list adapter ****
174         
175         listDemo = (ListView) findViewById(R.id.tab2);
176         listDemo.setAdapter(new BadgeAdapter(this));
177         
178     }
179 
180     @Override
181     protected void onResume() {
182         super.onResume();
183         
184         BadgeView badge;
185         View target;
186         
187         // *** test linear layout container ***
188         
189         target = findViewById(R.id.linear_target);
190         badge = new BadgeView(this, target);
191         badge.setText("OK");
192         badge.show();
193         
194         // *** test relative layout container ***
195         
196         target = findViewById(R.id.relative_target);
197         badge = new BadgeView(this, target);
198         badge.setText("OK");
199         badge.show();
200         
201         // *** test frame layout container ***
202         
203         target = findViewById(R.id.frame_target);
204         badge = new BadgeView(this, target);
205         badge.setText("OK");
206         badge.show();
207         
208         // *** test table layout container ***
209         
210         target = findViewById(R.id.table_target);
211         badge = new BadgeView(this, target);
212         badge.setText("OK");
213         badge.show();
214         
215         // *** test linear layout ***
216         
217         target = findViewById(R.id.linear_group_target);
218         badge = new BadgeView(this, target);
219         badge.setText("OK");
220         badge.show();
221         
222         // *** test relative layout ***
223         
224         target = findViewById(R.id.relative_group_target);
225         badge = new BadgeView(this, target);
226         badge.setText("OK");
227         badge.show();
228         
229         // *** test frame layout ***
230         
231         target = findViewById(R.id.frame_group_target);
232         badge = new BadgeView(this, target);
233         badge.setText("OK");
234         badge.show();
235         
236         // *** test table layout ***
237         
238         target = findViewById(R.id.tablerow_group_target);
239         badge = new BadgeView(this, target);
240         badge.setText("OK");
241         badge.show();
242         
243     }
244     
245     private static class BadgeAdapter extends BaseAdapter {
246         private LayoutInflater mInflater;
247         private Context mContext;
248         private static final int droidGreen = Color.parseColor("#A4C639");
249         
250         public BadgeAdapter(Context context) {
251             mInflater = LayoutInflater.from(context);
252             mContext = context;
253         }
254 
255         public int getCount() {
256             return DATA.length;
257         }
258 
259         public Object getItem(int position) {
260             return position;
261         }
262         
263         public long getItemId(int position) {
264             return position;
265         }
266 
267         public View getView(int position, View convertView, ViewGroup parent) {
268             ViewHolder holder;
269 
270             if (convertView == null) {
271                 convertView = mInflater.inflate(android.R.layout.simple_list_item_2, null);
272                 holder = new ViewHolder();
273                 holder.text = (TextView) convertView.findViewById(android.R.id.text1);
274                 holder.badge = new BadgeView(mContext, holder.text);
275                 holder.badge.setBadgeBackgroundColor(droidGreen);
276                 holder.badge.setTextColor(Color.BLACK);
277                 convertView.setTag(holder);
278             } else {
279                 holder = (ViewHolder) convertView.getTag();
280             }
281 
282             holder.text.setText(DATA[position]);
283             
284             if (position % 3 == 0) {
285                 holder.badge.setText(String.valueOf(position));
286                 holder.badge.show();
287             } else {
288                 holder.badge.hide();
289             }
290             
291             
292             return convertView;
293         }
294 
295         static class ViewHolder {
296             TextView text;
297             BadgeView badge;
298         }
299     }
300     
301 }

 

 

 

 

 

Android 图标上面添加提醒使用开源UI类库 Viewbadger,布布扣,bubuko.com

Android 图标上面添加提醒使用开源UI类库 Viewbadger

上一篇:阿里云OSS-js分片上传


下一篇:mysql在linux下修改存储路径