解决5.0以上通知栏图标变白
来源:互联网 发布:一机一码视频破解知乎 编辑:程序博客网 时间:2024/04/29 10:19
5.0以上(不包含5.0),系统默认通知栏图标为系统启动图标,会自动将通知栏的图标(有色区域)全部填充为白色,像一个白色格子,这是Google 为了实现材料设计规范,特意为之。为了去除白色图标,镂空背景即可:
系统启动图标ic_launcher.png
指定最顶层状态栏的小图标ic_notif.png,图片大小(60*60到80*80像素为佳)
这里贴出极光官方API的说明,但第一种方法好像并没什么用,第二种还需要服务端提供样式id(notificationID),当然服务器给出不同的ID就能得到相应的样式,在极光推送网页上也要填上相应的ID(范围1-1000),id为0时为系统默认。样式详细过程见: 用了极光推送的项目,可以配置自定义通知
http://docs.jpush.io/client/android_tutorials/#_11
http://docs.jpush.io/client/android_tutorials/#_11
客户端定义通知栏样式
自定义的通知栏样式,是在客户端进行的。请参考 通知栏样式定制API 来看所支持的功能。
自定义通知栏样式设计
- 有个 PushNotificationBuilder 概念,开发者使用 setPushNotificationBuilder 方法为某种类型的 PushNotificationBuilder 指定编号。
- setPushNotificationBuilder 可以在 JPushInterface.init() 之后任何地方调用,可以是开发者应用的逻辑来触发调用,或者初始化时调用。
- 只需要设置一次,JPush SDK 会记住这个设置。在下次收到推送通知时,就根据通知里指定的编号来找到 PushNotificationBuilder 来展现、执行。
API - setDefaultPushNotificationBuilder 设置默认
此 API 改变默认的编号为 0 的通知栏样式。
API - setPushNotificationBuilder 指定编号
此 API 为开发者指定的编号,设置一个自定义的 PushNotificationBuilder(通知样式构建器)。
Example - 基础的 PushNotificationBuilder
定制声音、震动、闪灯等 Notification 样式。
BasicPushNotificationBuilder builder = new BasicPushNotificationBuilder(MainActivity.this);builder.statusBarDrawable = R.drawable.jpush_notification_icon;builder.notificationFlags = Notification.FLAG_AUTO_CANCEL; //设置为自动消失builder.notificationDefaults = Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE | Notification.DEFAULT_LIGHTS; // 设置为铃声与震动都要JPushInterface.setPushNotificationBuilder(1, builder);
Example - 高级自定义的 PushNotificationBuilder
基于基础的 PushNotificationBuilder,可进一步地定制 Notification 的 Layout。
这里作为 example 的 customer_notitfication_layout 在我们的 example 项目的 /res/layout/ 下可以找到。你完全可以用自己的 layout。
CustomPushNotificationBuilder builder = new CustomPushNotificationBuilder(MainActivity.this, R.layout.customer_notitfication_layout, R.id.icon, R.id.title, R.id.text); // 指定定制的 Notification Layout builder.statusBarDrawable = R.drawable.your_notification_icon; // 指定最顶层状态栏小图标 builder.layoutIconDrawable = R.drawable.your_2_notification_icon; // 指定下拉状态栏时显示的通知图标 JPushInterface.setPushNotificationBuilder(2, builder);
如果只想在客户端设置,一直使用自己定义的样式,请看下面
代码示例:
/** * 当用户需要定制默认的通知栏样式时,则可调用此方法。 */private void setDefaultPushNotificationBuilder(Context context) { CustomPushNotificationBuilder builder = new CustomPushNotificationBuilder(context, R.layout.customer_notitfication_layout, R.id.notif_icon, R.id.notif_title, R.id.notif_text); // 指定定制的 Notification Layout builder.statusBarDrawable = R.drawable.ic_notif; // 指定最顶层状态栏小图标 builder.layoutIconDrawable = R.drawable.ic_launcher; // 指定下拉状态栏时显示的通知图标 JPushInterface.setDefaultPushNotificationBuilder(builder);}
在极光推送注册方法下的JpushInterface.init(),方法下调用自定义的样式即可(只需要调用一次)
private void registerPush() { // JPush JPushInterface.setDebugMode(true); JPushInterface.init(this.getApplicationContext()); setDefaultPushNotificationBuilder(PushProcessService.this);
}
完成上面的步骤即可。
1 1
- 解决5.0以上通知栏图标变白
- 解决5.0以上通知栏图标变白
- android 5.0以上通知栏、状态栏图标变成白色
- android 5.0以上通知栏、状态栏图标变成白色
- android 5.0以上通知栏、状态栏图标变成白色
- Android5.0以上通知栏图标设计
- Android5.0以上通知栏图标设计
- Android 通知栏图标 变形解决
- 解决Android 5.1系统以上通知状态栏小图标只显示白色问题
- Android5.0及以上版本通知栏和状态栏不显示彩色图标而都是白色
- 安卓学习笔记---Android通知栏微技巧,通知栏图标在sdk21以上及以下的区别
- iOS 8以上设置APP图标右上角通知数字
- windows任务栏下的通知图标不见了怎么解决?
- 解决删除SummerBoard后变白苹果问题
- 解决笔记本屏幕颜色偏变白问题
- Android 5.0状态栏通知图标的实现
- Windows通知栏图标高级编程概述
- Windows通知栏图标高级编程概述
- 工作日志(二)
- JavaScript的Function与Object浅析
- 《Linux字符集时间介绍及解决中文乱码实战》
- 自定义class loader
- bootstrap Table插件demo
- 解决5.0以上通知栏图标变白
- IOS通过AirServer录屏
- c语言基础学习
- C语言中 time函数和difftime函数
- C/C++基础——inline 与 宏
- Android静态代码检查
- 在linux下,如何在C语言中使用正则表达式
- 在AndroidManifest.xml中uses-sdk内属性意思
- Unity 关于冻结Rotation 和 Position的选项