首页 > 代码库 > android 实现自己定义状态栏通知(Status Notification)
android 实现自己定义状态栏通知(Status Notification)
在android项目的开发中,有时为了实现和用户更好的交互,在通知栏这一小小的旮旯里,我们通常须要将内容丰富起来,这个时候我们就须要去实现自己定义的通知栏,比如以下360或者网易的样式:
首先我们要了解的是 自己定义布局文件支持的控件类型: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);
实现的效果例如以下图:(右边为系统默认的样式)
这仅仅是一个简单的演示样例,为了实现我们自己的效果 我们仅仅须要改动布局文件就ok了。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。