android自定义消息背景,Android 消息通知栏用法详解(一)

Android 消息通知栏用法详解(二) 适配8.0

通知(Notification) 是Android 系统比较有特色的一个功能,当某个应用程序希望向用户发出一些提示信息的时,而该应用程序又处于后台,就可以借助通知来实现。比如微信弹窗。通过这篇文章,我们将学习到

Notification 的基本用法Notification 声音、优先级、多文字和大图片的显示Notification 高级玩法自定义 Notification 的布局

官网 Nitification 资料

一、基本用法

通知可以在 广播、activity 或者 service 去创建,不过在 activity 创建得比较少,一般都是应用在后台了,才需要去弄,不过我们是demo,所以写哪都没关系。

创建通知的基本步骤如下:

使用getSystemService 拿到 NotificationManager 的管理类使用NotificationCompat 设置标题、内容、图片等最后调用 NotificationManager 的 notify() 调出通知栏

上面中,为什么要使用 NotificationCompat 呢,因为Android系统的每一个版本都会对通知这部分功能进行或多或少的修改,API 比较不稳定,所以这里使用 v4 的包去兼容,当然,如果你使用 androidx,也就没啥问题了。 所以,一个简单的通知实例如下 :

以下代码建议在8.0之下运行,8.0以上,请参考下一篇文章

首先创建 NotificationManager

mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

mBuilder = new NotificationCompat.Builder(this)

.setContentTitle("这是标题")

.setContentText("我是内容,我是demo")

.setWhen(System.currentTimeMillis())

.setSmallIcon(R.mipmap.ic_launcher)

.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher));

//通过 builder.build() 拿到 notification

mNotificationManager.notify(1, mBuilder.build());

解释如下:

setContentTitle 为设置标题setContentText 为正文内容setWhen 为通知创建时间,以 ms 为单位setSmallIcon 通知的小图标,注意只能使用 纯 alpha 图层的图片进行设置setLargeIcon 通知栏的大图标

都设置完成之后,只要使用 nofity() 即可,其中,第一个参数为 id,后面用来取消通知的。所以随便填一个数字即可,效果如下。

可以看到,小图标是灰色的。当然了,google 要求是 alpha 的图层呢。 什么是 纯 alpha 的图层图片呢?通俗来讲,就是图片不要带颜色就可以了,当然UI设计师肯定知道,就是用 alpha 层去绘制图片吗,咱们也可以从 阿里巴巴的图片库下载,比如:

然后咱们设置一下  但是,发现默认还是灰色的,这里可以使用 setcolor 去设置:

.setColor(getResources().getColor(R.color.colorPrimary))

这里咱们就设置好了小图标了

1.1 设置点击事件

一般的通知栏都是可以点击的,但是我们点击了一下,发现并没有什么用。当然,我们都没设置点击事件。 notification 的点击事件,可以通过设置 setContentIntent 来实现。它需要传递一个 PendingIntent。从而实现点击之后的跳转意图。 PendingIntent 的用法也很简单,它可以通过 getActivity(),getBroadcast() 和 getService() 来获取不同的实例,一个简单获取 activity 的方法如下:

Intent intent = new Intent(this,SecondActivity.class);

PendingIntent pi = PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_CANCEL_CU

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值