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

开发时候遇到一个问题,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)


你可能感兴趣的:(android)