android5.0状态栏图标变成白色

本文解决Android 5.0及以上版本通知栏图标显示异常的问题,介绍如何根据不同版本使用不同图标,并通过代码示例展示如何实现跨版本兼容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发时候遇到一个问题,android5.0的notification,在状态栏的图标显示一个白块,而在5.0之前的版本就不会出现这个问题,上网查了一下:

解释是android5.0之后的图标就不能够随便用一张色彩丰富的图片了,只能够有白色和透明两个颜色出现

http://stackoverflow.com/questions/27188689/android-lollipop-notification-builder-setsmallicon


还有一个做法是修改manifest.xml的版本,降低到21之下就能够显示原来的图片,当然这种方法不好,最好的做法是在5.0之前的版本用一个图片,在之后的版本用另一张只有白色和透明的颜色,然后再设置一个背景颜色,状态栏效果如下


状态栏拉下之后效果


notification的icon设置为


除“微店”两个字外,其余都为透明颜色

					if (android.os.Build.VERSION.SDK_INT < 21)
						nf.icon = R.drawable.ic_launcher;
					else {
						nf.icon = R.drawable.ic_launcher_notification;
						Class<?> clazz = nf.getClass();
						Field field = clazz.getDeclaredField("color");
						field.setAccessible(true);
						field.set(nf, context.getResources().getColor(R.color.red_launcher));
					}

再设置一下背景颜色为红色,拉下来之后的状态栏就会显示红色背景色了

PS:好像很多应用还没做此适配,豆瓣就是(2015年5月12日14:09:35)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值