GitHub控件之BadgeView(数字提醒)

本文详细介绍了Android BadgeView的使用方法及常见配置选项,包括如何设置目标视图、提醒数字、显示位置、背景颜色、背景图片、字体、阴影等,并通过示例代码展示其在实际应用中的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android-badgeview源代码下载路径:https://github.com/jgilfelt/android-viewbadger

使用方法:直接把这个类考到自己工程里就可以了。





效果如上图

  看一下badgeview中常用的方法:
1. setTargetView(View) --> 设置哪个控件显示数字提醒,参数就是一个view对象
2. setBadgeCount(int) --> 设置提醒的数字
3. setBadgeGravity(Gravity) --> 设置badgeview的显示位置
4. setBackgroundColor() --> 设置badgeview的背景色,当然还可以设置背景图片
5. setBackgroundResource() --> 设置背景图片
6. setTypeface() --> 设置显示的字体
7. setShadowLayer() --> 设置字体的阴影

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

public class MainActivity extends Activity {

	private TextView textView;
	private Button btn;
	
	private LinearLayout layout;
	private View imageView;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		textView = (TextView) findViewById(R.id.tv1);
		btn = (Button) findViewById(R.id.btn1);
		imageView = findViewById(R.id.imageView1);
		layout = (LinearLayout) findViewById(R.id.layout1);

		BadgeView badgeView = new com.jauker.widget.BadgeView(this);
		badgeView.setTargetView(textView);
		badgeView.setBadgeCount(3);

		badgeView = new BadgeView(this);
		badgeView.setTargetView(btn);
		badgeView.setBadgeCount(-7);

		//imageView必须是view形式才可以
		badgeView = new BadgeView(this);
		badgeView.setTargetView(imageView);
		badgeView.setBadgeCount(110);

		badgeView = new BadgeView(this);
		badgeView.setTargetView(layout);
		badgeView.setBackground(12, Color.parseColor("#9b2eef"));
		badgeView.setText("提示");

		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.CENTER);
		badgeView.setBackgroundColor(Color.RED);
		badgeView.setBadgeMargin(-1);
		badgeView.setTextColor(Color.BLACK);
		badgeView.setBadgeCount(10);

		badgeView = new BadgeView(this);
		badgeView.setTargetView(layout);
		badgeView.setBadgeGravity(Gravity.LEFT | Gravity.CENTER);
		badgeView.setBackground(20, Color.RED);
		badgeView.setTextColor(Color.BLACK);
		badgeView.setBadgeCount(-6);

		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.setVisibility(View.GONE);

	}

}

布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical"
    tools:context="com.badgeviewtest.MainActivity" >

    <TextView
        android:id="@+id/tv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:text="@string/hello_world" />

    <Button
        android:id="@+id/btn1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:text="Button" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:src="@drawable/ic_launcher" />

    <LinearLayout
        android:id="@+id/layout1"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_marginTop="20dp"
        android:background="#E0EEE0"
        android:orientation="vertical" >
    </LinearLayout>

</LinearLayout>

GitHub源码的效果图


更多功能可以分析源码学习

android-badgeview源代码下载路径:https://github.com/jgilfelt/android-viewbadger

image1=findViewById(R.id.ic_image);
        //加图标
      	badge = new BadgeView(this, image1);
      	badge.setText("123");
        badge.show();
这是源码中demo的一个使用例子。

注意他的用法。构造函数和show方法。和之前不同。

ImageView必须是view类型才可以加角标、、、





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值