轉載請注明出處: http://blog.csdn.net/crazy1235/article/details/42262369
數字提醒大家肯定都見識過。QQ、微信等app中如果有消息或者提醒的時候,就會展現給使用者一個紅點或者帶有數字的點。前段時間微信上流行把自己的頭像換成帶有數字提醒的頭像,讓那些有強迫症的人真是抓狂。
下面我們就看一下怎麼在自己的app中實作這種效果。
開發者當然可以自己用相對布局來實作這樣的效果。一個還好,但是多了呢!就會很繁瑣。GitHub上有一個開源的第三方控件,叫做BadgeView。使用它可以很方面的實作想要的效果。
先來怎麼使用,簡單的三行代碼就可以實作數字提醒:
[java] view plain copy print ?
- BadgeView badgeView = new com.jauker.widget.BadgeView(this);
- badgeView.setTargetView(textView);
- badgeView.setBadgeCount(3);
BadgeView badgeView = new com.jauker.widget.BadgeView(this);
badgeView.setTargetView(textView);
badgeView.setBadgeCount(3);
看一下badgeview中常用的方法:
1. setTargetView(View) --> 設定哪個控件顯示數字提醒,參數就是一個view對象
2. setBadgeCount(int) --> 設定提醒的數字
3. setBadgeGravity(Gravity) --> 設定badgeview的顯示位置
4. setBackgroundColor() --> 設定badgeview的背景色,當然還可以設定背景圖檔
5. setBackgroundResource() --> 設定背景圖檔
6. setTypeface() --> 設定顯示的字型
7. setShadowLayer() --> 設定字型的陰影
[java] view plain copy print ?
- badgeView = new BadgeView(this);
- badgeView.setTargetView(layout);
- badgeView.setBackground(12, Color.parseColor("#9b2eef"));
- badgeView.setText("提示");
badgeView = new BadgeView(this);
badgeView.setTargetView(layout);
badgeView.setBackground(12, Color.parseColor("#9b2eef"));
badgeView.setText("提示");
[java] view plain copy print ?
- badgeView = new BadgeView(this);
- badgeView.setTargetView(layout);
- badgeView.setBadgeGravity(Gravity.BOTTOM | Gravity.CENTER);
- badgeView.setBadgeCount(4);
badgeView = new BadgeView(this);
badgeView.setTargetView(layout);
badgeView.setBadgeGravity(Gravity.BOTTOM | Gravity.CENTER);
badgeView.setBadgeCount(4);
[java] view plain copy print ?
- badgeView = new BadgeView(this);
- badgeView.setTargetView(layout);
- badgeView.setBadgeGravity(Gravity.TOP | Gravity.LEFT);
- badgeView.setTypeface(Typeface.create(Typeface.SANS_SERIF,
- Typeface.ITALIC));
- badgeView.setShadowLayer(2, -1, -1, Color.GREEN);
- badgeView.setBadgeCount(2);
badgeView = new BadgeView(this);
badgeView.setTargetView(layout);
badgeView.setBadgeGravity(Gravity.TOP | Gravity.LEFT);
badgeView.setTypeface(Typeface.create(Typeface.SANS_SERIF,
Typeface.ITALIC));
badgeView.setShadowLayer(2, -1, -1, Color.GREEN);
badgeView.setBadgeCount(2);
實際上BadgeView這個類就是繼承TextView的。很多TextView中設定字型的方法都适用于BadgeView。
OK。效果實作完畢。
BadgeView下載下傳連結
badgeview.jar下載下傳
DEMO下載下傳