android 实现自己定义状态栏通知(Status Notification)

android 实现自己定义状态栏通知(Status Notification)

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

在android项目的开发中,有时为了实现和用户更好的交互,在通知栏这一小小的旮旯里,我们通常须要将内容丰富起来,这个时候我们就须要去实现自己定义的通知栏,比如以下360或者网易的样式:

android 实现自己定义状态栏通知(Status Notification)

首先我们要了解的是 自己定义布局文件支持的控件类型:Notification的自己定义布局是RemoteViews,因此,它仅支持FrameLayout、LinearLayout、RelativeLayout三种布局控件,同一时候支持AnalogClock、Chronometer、Button、ImageButton、ImageView、ProgressBar、TextView、ViewFlipper、ListView、GridView、StackView和AdapterViewFlipper这些UI控件。对于其它不支持的控件,使用时将会抛出ClassNotFoundException异常。

同一时候呢我们还要了解的是Notification支持的Intent类型(都是PendingIntent类的实例)。

以下就是详细的实现了:在这个通知栏里 我们放一个进度条

//Get the notification manager
    	String ns = Context.NOTIFICATION_SERVICE;
    	NotificationManager nm = 
    		(NotificationManager)ctx.getSystemService(ns);
    	
    	//Create Notification Object
		int icon = R.drawable.robot;
		CharSequence tickerText = "Hello";
		long when = System.currentTimeMillis();
		
		Notification notification = 
			new Notification(icon, tickerText, when);

		//Set ContentView using setLatestEvenInfo
	    Intent intent = new Intent(Intent.ACTION_VIEW);
	    intent.setData(Uri.parse("http://www.google.com"));
	    PendingIntent pi = PendingIntent.getActivity(ctx, 0, intent, 0);
//	    notification.setLatestEventInfo(ctx, "title", "text", pi);// 使用默认的样式
	    notification.contentIntent = pi;
	    notification.contentView = new RemoteViews(ctx.getPackageName(),R.layout.noti);
	    //Send notification
		nm.notify(1, notification);

实现的效果例如以下图:(右边为系统默认的样式)

android 实现自己定义状态栏通知(Status Notification)           android 实现自己定义状态栏通知(Status Notification)

这仅仅是一个简单的演示样例,为了实现我们自己的效果 我们仅仅须要改动布局文件就ok了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118638.html原文链接:https://javaforall.net

(0)
上一篇 2021年12月3日 下午1:00
下一篇 2021年12月3日 下午2:00


相关推荐

  • Linux netstat 命令详解

    Linux netstat 命令详解netstat 可以用来查 Linx 网络系统接口的状态信息 统计信息 打开的 socket 连接 以及路由表等等

    2026年3月16日
    2
  • Midjourney如何修改图片背景 Midjourney如何修改图片尺寸

    Midjourney如何修改图片背景 Midjourney如何修改图片尺寸

    2026年3月15日
    2
  • oracle修改用户密码的方法「建议收藏」

    oracle修改用户密码的方法「建议收藏」修改oracle用户的密码有以下方法:普通用户(1)通过alteruser语法来进行修改,这也是最常见的方式:(2)第二种方式,是通过password命令来…

    2022年7月28日
    9
  • 数据结构顺序表基本操作(C/C++实现)

    数据结构顺序表基本操作(C/C++实现)数据结构顺序表基本操作 C C 实现 涉及基本运算初始化顺序表 L 依次插入 abcde 元素输出顺序表 L 输出顺序表 L 的长度判断顺序表 L 是否为空输出顺序表 L 的第 3 个元素输出元素 a 的位置在第 4 个元素位置上插入 f 元素输出顺序表 L 删除顺序表 L 的第 3 个元素输出顺序表 L 释放顺序表 LGitHub 地址 包含 cpp 文件和可执行程序 exe 我的数据结构 GitHub 地址源代码 经 VS2

    2026年3月18日
    2
  • 细说PyCharm的安装和配置[通俗易懂]

    细说PyCharm的安装和配置[通俗易懂]PyCharm的安装和设置PyCharm是一款非常好用的PythonIDE,由JetBrains开发和维护,(同时JetBrains还开发了另外一些知名IDE—-IntelliJIDEA和WebStorm)JetBrains官网:www.jetbrains.comPyCharm分为免费(Community,社区版)和收费的(Professional,专业版)通常情况下免费的版本就可以使用(学生党狂喜)PyCharm的安装包格式:pycharm-版本-日期安装步骤就是Next,选安装盘

    2022年8月29日
    5
  • Oracle Class6-1. PL/SQL 简介(数据类型,逻辑比较,控制结构,错误处理)

    Oracle Class6-1. PL/SQL 简介(数据类型,逻辑比较,控制结构,错误处理)2013 5 161 sql 概念 主要特点 使用 sql 工具 如何访问及本书实例两个数据表 2 单个表查询 3 多个表查询 4 复杂的嵌套查询 5 查询函数 6 sql 录入数据 7 sql 删除数据 8 sql 更新数据 sql 已经被 ANSI 美国国家标准化组织 确定为数据库系统的工业标准 DQL 查询 DDL 建立

    2026年3月6日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号