Android进步之十六:badgeView的简单测试和介绍

数字提醒大家肯定都见识过。QQ、微信等app中如果有消息或者提醒的时候,就会展现给用户一个红点或者带有数字的点。前段时间微信上流行把自己的头像换成带有数字提醒的头像,让那些有强迫症的人真是抓狂。


    下面我们就看一下怎么在自己的app中实现这种效果。

    开发者当然可以自己用相对布局来实现这样的效果。一个还好,但是多了呢!就会很繁琐。GitHub上有一个开源的第三方控件,叫做BadgeView。使用它可以很方面的实现想要的效果。

    先来怎么使用,简单的三行代码就可以实现数字提醒:

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. BadgeView badgeView = new com.jauker.widget.BadgeView(this);  
  2. badgeView.setTargetView(textView);  
  3. 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 在CODE上查看代码片 派生到我的代码片
  1. badgeView = new BadgeView(this);  
  2.         badgeView.setTargetView(layout);  
  3.         badgeView.setBackground(12, Color.parseColor("#9b2eef"));  
  4.         badgeView.setText("提示");  

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. badgeView = new BadgeView(this);  
  2.         badgeView.setTargetView(layout);  
  3.         badgeView.setBadgeGravity(Gravity.BOTTOM | Gravity.CENTER);  
  4.         badgeView.setBadgeCount(4);  

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. badgeView = new BadgeView(this);  
  2.         badgeView.setTargetView(layout);  
  3.         badgeView.setBadgeGravity(Gravity.TOP | Gravity.LEFT);  
  4.         badgeView.setTypeface(Typeface.create(Typeface.SANS_SERIF,  
  5.                 Typeface.ITALIC));  
  6.         badgeView.setShadowLayer(2, -1, -1, Color.GREEN);  
  7.         badgeView.setBadgeCount(2);  

    实际上BadgeView这个类就是继承TextView的。很多TextView中设置字体的方法都适用于BadgeView。


今天对BadgeView作了简单的测试,badgeView其实是右侧的小标记,可以利用构造方法把小标记加进TextView等控件中。比如下面,是我的测试代码:
一般是利用BadgeView的构造方法来完成的,如下面:
<span style="font-family:Microsoft YaHei;font-size:14px;">BadgeView badgeView = new BadgeView(this,view);</span>
<span style="font-family:Microsoft YaHei;font-size:14px;">第一个参数是上下文,第二个参数是badgeView要加入的控件,下面是对badgeView进行的一系列设置。</span>
<span style="font-family:Microsoft YaHei;font-size:14px;">protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		TextView tv = (TextView) findViewById(R.id.tv);
		tv.setTextSize(30);
//		tv.setTextColor(getResources().getColor(R.color.purple));
//		tv.setTextColor(Color.RED);
		addBadgeView(tv,20);
		
	}

	private void addBadgeView(View view, int count) {
		
		BadgeView badgeView = new BadgeView(this,view);
		badgeView.setText("工具");
		badgeView.setTextSize(28);
//		badgeView.setBackgroundColor(R.color.purple);
		badgeView.setBackgroundColor(getResources().getColor(R.color.purple));
		badgeView.show();
	}</span>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值