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年11月6日
  • epplus word html,EPPlus简介

    epplus word html,EPPlus简介简介:Epplus是一个使用OpenOfficeXML(Xlsx)文件格式,能读写Excel2007/2010文件的开源组件功效:支持对excel文档的汇入汇出,图表(excel自带的图表基本都可以实现)的列印使用:首先应该下载Epplus的dll文件1.添加dll文件至工程bin文件中2.添加引用usingOfficeOpenXml;usingOfficeOpenXml.Drawing…

    2022年6月30日
  • eclipse代码自动补全[通俗易懂]

    eclipse代码自动补全[通俗易懂]1、点击菜单栏,打开Eclipse->Window->Perferences2、找到Java下的 Editor下的 ContentAssist,点击它3、找到第二个“AutoactivationtriggersforJava:”选项,在其后的文本框中会看到一个“.”存在。这表示:只有输入“.”之后才会有代码提示和自动补全,把该文本框中的“.”换成“abcdefghijklmnopqrstuvwxyz.”即可。…

    2022年5月31日
  • html滚动字幕制作教程,dreamweaver教程:怎么制作网页滚动字幕[通俗易懂]

    html滚动字幕制作教程,dreamweaver教程:怎么制作网页滚动字幕[通俗易懂]滚动字幕在FrontPage的组件里有,但是FrontPage这个软件只能支持单行文字,一出现多行文字它就无能为力了,而且它只能支持一行滚动!(如果出现只能滚动一行的情况,解决办法是把这段代码嵌入到JavaScript的document.write里面,请看下面例的详细说明)Dreamweaver也只能用编写HTML代码的方法。所以强烈建议用记事本打开网页源代码来编辑。1.建立第一个滚动字幕。代码…

    2022年6月9日
  • 网站程序下载_可以免费下载程序的网站

    网站程序下载_可以免费下载程序的网站1、博客网站:Wordpress、zblog2、门户网站:Dedecms、phpcms、帝国cms3、论坛网站:Discuz4、企业网站:Dedecms、phpcms、帝国cms5、商城网站:

    2022年8月6日
  • rider激活码-激活码分享

    (rider激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlKU…

    2022年3月22日

发表回复

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

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