Notification 通知栏的使用

来源:互联网 发布:避孕套用途知乎 编辑:程序博客网 时间:2024/06/05 07:23

详情请看郭林大神http://blog.csdn.net/guolin_blog/article/details/50945228

Notification,不同的android版本,都有比较大的调整,android7.0动作更大,那么问题来了,新版本的API无法兼容老系统的,这里V7包提供了一个NotificationCompat类帮我们解决了这个问题

贴一段触发通知栏的代码

 NotificationManager  manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);                NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext());                Notification notification = builder                        .setContentTitle("通知栏标题")                        .setContentText("通知栏内容")                        .setWhen(System.currentTimeMillis())                        .setSmallIcon(R.mipmap.ic_launcher)                        .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher))                        //.setColor(Color.parseColor("#ffffff"))   修改小圆圈的颜色                        .build();                manager.notify(1,notification);

可以看到,这里只是把我们平时使用的Notification.Builder改成了NotificationCompat.Builder而已,其他用法都是一模一样的,这样我们的通知就具备各种Android版本的兼容性了。

我现在是将项目的targetSdkVersion指定成了21以下,即低于5.0系统。如果将targetSdkVersion指定成21或者更高的话,结果可能就不乐观了:

这到底是为什么呢?实际上,Android从5.0系统开始,对于通知栏图标的设计进行了修改。现在Google要求,所有应用程序的通知栏图标,应该只使用alpha图层来进行绘制,而不应该包括RGB图层。

说的好像很玄乎,什么叫作只使用alpha图层来进行绘制呢?其实通俗点来讲,就是让我们的通知栏图标不要带颜色就可以了。

恩?不带颜色!那图标还怎么设计?但这就不是我们程序员应该考虑的问题了,而是应该交给项目的UI设计师来想办法,但我们需要将这个设计需求清楚地告诉设计师,因为他们通常并不知道Google的各种标准和要求。

那么我们来参考一下别的程序都是怎么设计通知栏图标的,这是支付宝的通知栏图标:

那么怎样修改这个小圆圈的颜色呢?其实非常简单,只需要在NotificationCompat.Builder中再多连缀一个setColor()方法就可以了,如下所示:
Notification notification = builder
......
.setColor(Color.parseColor("#EAA935"))
.build();

0 0
原创粉丝点击