BadgeView(View上添加提醒)的应用与分析
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                BadgeView(View上添加提醒)的应用与分析
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.                        
                                
                            
                            
                            BadgeView是一個應(yīng)用非常廣泛的在任意控件上顯示提醒的工具類。???
不僅在控件上,在任意布局中均可使用。代碼托管在github(作者上一次更新還在3年前) ? https://github.com/jgilfelt/android-viewbadger
下載下來可以直接將源代碼拷貝到自己的工程中,也可以使用提供的jar包
使用方法非常簡單,只要有一個控件的對象實例即可,比如在一個線性布局上顯示:? ??????LinearLayout?content=(LinearLayout)?findViewById(R.id.container);????BadgeView?view=new?BadgeView(this,content);????view.setText("warn");????view.show();
效果圖:
也可以設(shè)置成其它位置和其它顏色
? ? Button?btn=(Button)?findViewById(R.id.btn1);//在按鈕的點(diǎn)擊事件中,顯示一個BadgeView????btn.setOnClickListener(new?OnClickListener()?{????????????????@Override????????public?void?onClick(View?v)?{????????//?TODO?Auto-generated?method?stub????????BadgeView?btnView=new?BadgeView(MainActivity.this,v);????????btnView.setText("測試");????????btnView.setBadgePosition(BadgeView.POSITION_BOTTOM_LEFT);????????btnView.setTextColor(Color.BLACK);????????btnView.setBadgeBackgroundColor(Color.RED);????????btnView.show();????????}????});
效果圖:
除了使用show方法來實現(xiàn)顯示效果外,還可以使用toggle方法來增加更多的顯示效果,將上方代碼稍加變化
? ? Button?btn=(Button)?findViewById(R.id.btn1);//在按鈕的點(diǎn)擊事件中,顯示一個BadgeView????btnView?=?new?BadgeView(MainActivity.this,btn);????btnView.setText("測試");????btnView.setBadgePosition(BadgeView.POSITION_BOTTOM_LEFT);????btnView.setTextColor(Color.BLACK);????btnView.setBadgeBackgroundColor(Color.RED);????????btn.setOnClickListener(new?OnClickListener()?{????????????????@Override????????public?void?onClick(View?v)?{????????//?TODO?Auto-generated?method?stub//????????btnView.show();????????btnView.toggle();????????}????});
可以實現(xiàn)當(dāng)點(diǎn)擊按鈕時顯示,再次按下時隱藏。toggle方法調(diào)用時可以傳入兩個動畫的對象,來顯示或隱藏提醒
? ? Button?btn=(Button)?findViewById(R.id.btn1);//在按鈕的點(diǎn)擊事件中,顯示一個BadgeView????btnView?=?new?BadgeView(MainActivity.this,btn);????btnView.setText("測試");????btnView.setBadgePosition(BadgeView.POSITION_BOTTOM_LEFT);????btnView.setTextColor(Color.BLACK);????btnView.setBadgeBackgroundColor(Color.RED);????????btn.setOnClickListener(new?OnClickListener()?{????????????????@Override????????public?void?onClick(View?v)?{????????//?TODO?Auto-generated?method?stub//????????btnView.show();????????TranslateAnimation?animIn?=?new?TranslateAnimation(0,?0,?-100,?0);//顯示時的動畫????????animIn.setInterpolator(new?BounceInterpolator());????????animIn.setDuration(1000);????????TranslateAnimation?animOut?=?new?TranslateAnimation(0,?0,?0,?100);//隱藏時的動畫????????animOut.setInterpolator(new?BounceInterpolator());????????animOut.setDuration(1000);????????????????btnView.toggle(animIn,animOut);????????}????});
顯示的提醒如果是數(shù)字的話,還可以實現(xiàn)自增功能。
Button?btn=(Button)?findViewById(R.id.btn1);//在按鈕的點(diǎn)擊事件中,顯示一個BadgeView????btnView?=?new?BadgeView(MainActivity.this,btn);????btnView.setText("0");????btnView.setBadgePosition(BadgeView.POSITION_BOTTOM_LEFT);????btnView.setTextColor(Color.BLACK);????btnView.setBadgeBackgroundColor(Color.RED);????????btn.setOnClickListener(new?OnClickListener()?{????????????????@Override????????public?void?onClick(View?v)?{????????//?TODO?Auto-generated?method?stub????????????????if?(btnView.isShown())?{????????????btnView.increment(1);????????}else?{????????????btnView.show();????????}????????????????????????}????});每次點(diǎn)擊按鈕,數(shù)字都會加一
....?
可以在Listview的每個條目當(dāng)中當(dāng)中使用。代碼如下。
? ?private?ListView?lv;????private?static?final?String[]?str?=?{?"周星星",?"成龍",?"李連杰",?"周星星",?"成龍",????????"李連杰",?"周星星",?"成龍",?"李連杰"?};
lv?=?(ListView)?findViewById(R.id.lv);????lv.setAdapter(new?BaseAdapter()?{????????@Override????????public?View?getView(int?position,?View?convertView,?ViewGroup?parent)?{????????ViewHolder?holder;????????if?(convertView?==?null)?{????????????holder?=?new?ViewHolder();????????????convertView?=?LayoutInflater.from(MainActivity.this)????????????????.inflate(android.R.layout.simple_list_item_2,?null);????????????holder.text?=?(TextView)?convertView????????????????.findViewById(android.R.id.text1);????????????holder.badge?=?new?BadgeView(MainActivity.this,?holder.text);????????????holder.badge.setBadgeBackgroundColor(Color.GREEN);????????????holder.badge.setTextColor(Color.BLACK);????????????convertView.setTag(holder);????????}?else?{????????????holder?=?(ViewHolder)?convertView.getTag();????????}????????holder.text.setText(str[position]);????????holder.badge.setText(position?+?"");????????holder.badge.show();????????return?convertView;????????}????????@Override????????public?long?getItemId(int?position)?{????????return?position;????????}????????@Override????????public?Object?getItem(int?position)?{????????return?position;????????}????????@Override????????public?int?getCount()?{????????return?str.length;????????}????});
效果圖
BadegView本身也是一種控件(繼承了TextView),可以直接在xml文件中定義實現(xiàn)。
? ??<com.readystatesoftware.viewbadger.BadgeView????????????????android:layout_width="wrap_content"????????????????android:layout_height="wrap_content"????????????????android:text="這里是一個BadgeView的控件"????????????????android:id="@+id/badge"????????????????android:layout_gravity="center"?/>
效果圖:
到這里文章就結(jié)束了。如果你想使用了解更多,請參考github上示例代碼。
來自為知筆記(Wiz)
 
                        
                        
                        不僅在控件上,在任意布局中均可使用。代碼托管在github(作者上一次更新還在3年前) ? https://github.com/jgilfelt/android-viewbadger
下載下來可以直接將源代碼拷貝到自己的工程中,也可以使用提供的jar包
使用方法非常簡單,只要有一個控件的對象實例即可,比如在一個線性布局上顯示:? ??????LinearLayout?content=(LinearLayout)?findViewById(R.id.container);????BadgeView?view=new?BadgeView(this,content);????view.setText("warn");????view.show();
效果圖:
也可以設(shè)置成其它位置和其它顏色
? ? Button?btn=(Button)?findViewById(R.id.btn1);//在按鈕的點(diǎn)擊事件中,顯示一個BadgeView????btn.setOnClickListener(new?OnClickListener()?{????????????????@Override????????public?void?onClick(View?v)?{????????//?TODO?Auto-generated?method?stub????????BadgeView?btnView=new?BadgeView(MainActivity.this,v);????????btnView.setText("測試");????????btnView.setBadgePosition(BadgeView.POSITION_BOTTOM_LEFT);????????btnView.setTextColor(Color.BLACK);????????btnView.setBadgeBackgroundColor(Color.RED);????????btnView.show();????????}????});
效果圖:
除了使用show方法來實現(xiàn)顯示效果外,還可以使用toggle方法來增加更多的顯示效果,將上方代碼稍加變化
? ? Button?btn=(Button)?findViewById(R.id.btn1);//在按鈕的點(diǎn)擊事件中,顯示一個BadgeView????btnView?=?new?BadgeView(MainActivity.this,btn);????btnView.setText("測試");????btnView.setBadgePosition(BadgeView.POSITION_BOTTOM_LEFT);????btnView.setTextColor(Color.BLACK);????btnView.setBadgeBackgroundColor(Color.RED);????????btn.setOnClickListener(new?OnClickListener()?{????????????????@Override????????public?void?onClick(View?v)?{????????//?TODO?Auto-generated?method?stub//????????btnView.show();????????btnView.toggle();????????}????});
可以實現(xiàn)當(dāng)點(diǎn)擊按鈕時顯示,再次按下時隱藏。toggle方法調(diào)用時可以傳入兩個動畫的對象,來顯示或隱藏提醒
? ? Button?btn=(Button)?findViewById(R.id.btn1);//在按鈕的點(diǎn)擊事件中,顯示一個BadgeView????btnView?=?new?BadgeView(MainActivity.this,btn);????btnView.setText("測試");????btnView.setBadgePosition(BadgeView.POSITION_BOTTOM_LEFT);????btnView.setTextColor(Color.BLACK);????btnView.setBadgeBackgroundColor(Color.RED);????????btn.setOnClickListener(new?OnClickListener()?{????????????????@Override????????public?void?onClick(View?v)?{????????//?TODO?Auto-generated?method?stub//????????btnView.show();????????TranslateAnimation?animIn?=?new?TranslateAnimation(0,?0,?-100,?0);//顯示時的動畫????????animIn.setInterpolator(new?BounceInterpolator());????????animIn.setDuration(1000);????????TranslateAnimation?animOut?=?new?TranslateAnimation(0,?0,?0,?100);//隱藏時的動畫????????animOut.setInterpolator(new?BounceInterpolator());????????animOut.setDuration(1000);????????????????btnView.toggle(animIn,animOut);????????}????});
顯示的提醒如果是數(shù)字的話,還可以實現(xiàn)自增功能。
Button?btn=(Button)?findViewById(R.id.btn1);//在按鈕的點(diǎn)擊事件中,顯示一個BadgeView????btnView?=?new?BadgeView(MainActivity.this,btn);????btnView.setText("0");????btnView.setBadgePosition(BadgeView.POSITION_BOTTOM_LEFT);????btnView.setTextColor(Color.BLACK);????btnView.setBadgeBackgroundColor(Color.RED);????????btn.setOnClickListener(new?OnClickListener()?{????????????????@Override????????public?void?onClick(View?v)?{????????//?TODO?Auto-generated?method?stub????????????????if?(btnView.isShown())?{????????????btnView.increment(1);????????}else?{????????????btnView.show();????????}????????????????????????}????});每次點(diǎn)擊按鈕,數(shù)字都會加一
....?
可以在Listview的每個條目當(dāng)中當(dāng)中使用。代碼如下。
? ?private?ListView?lv;????private?static?final?String[]?str?=?{?"周星星",?"成龍",?"李連杰",?"周星星",?"成龍",????????"李連杰",?"周星星",?"成龍",?"李連杰"?};
lv?=?(ListView)?findViewById(R.id.lv);????lv.setAdapter(new?BaseAdapter()?{????????@Override????????public?View?getView(int?position,?View?convertView,?ViewGroup?parent)?{????????ViewHolder?holder;????????if?(convertView?==?null)?{????????????holder?=?new?ViewHolder();????????????convertView?=?LayoutInflater.from(MainActivity.this)????????????????.inflate(android.R.layout.simple_list_item_2,?null);????????????holder.text?=?(TextView)?convertView????????????????.findViewById(android.R.id.text1);????????????holder.badge?=?new?BadgeView(MainActivity.this,?holder.text);????????????holder.badge.setBadgeBackgroundColor(Color.GREEN);????????????holder.badge.setTextColor(Color.BLACK);????????????convertView.setTag(holder);????????}?else?{????????????holder?=?(ViewHolder)?convertView.getTag();????????}????????holder.text.setText(str[position]);????????holder.badge.setText(position?+?"");????????holder.badge.show();????????return?convertView;????????}????????@Override????????public?long?getItemId(int?position)?{????????return?position;????????}????????@Override????????public?Object?getItem(int?position)?{????????return?position;????????}????????@Override????????public?int?getCount()?{????????return?str.length;????????}????});
效果圖
BadegView本身也是一種控件(繼承了TextView),可以直接在xml文件中定義實現(xiàn)。
? ??<com.readystatesoftware.viewbadger.BadgeView????????????????android:layout_width="wrap_content"????????????????android:layout_height="wrap_content"????????????????android:text="這里是一個BadgeView的控件"????????????????android:id="@+id/badge"????????????????android:layout_gravity="center"?/>
效果圖:
到這里文章就結(jié)束了。如果你想使用了解更多,請參考github上示例代碼。
來自為知筆記(Wiz)
轉(zhuǎn)載于:https://www.cnblogs.com/linwoain/p/8d1e281e5eb7b1f03a465225fc7cae38.html
總結(jié)
以上是生活随笔為你收集整理的BadgeView(View上添加提醒)的应用与分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: FZU 2171(线段树的延迟标记)
- 下一篇: Linux 64bit下Oracle11
