前几天客户投诉,客户的apk在我们的设备上状态栏图标不能显示应用本身的图标,而是显示为正方形的白底图片.
首先遇到这个问题肯定是先百度一发...
然而在网上找到的文章全市基于Android L的代码分析,已经不适用Android N,所以针对Android N状态栏变色的流程说明一下.
Android N现在对通知还有状态栏图标的处理逻辑是:
1.首先判断APK的target version是Android L之后,如果是则直接会主动上色
2.如果在Android L之前则判断图片是否为Grayscale(灰度图),如果为灰度图的话也会有一个上色的操作.
具体涉及到代码有(代码根据高通平台Android N分析)
1.frameworks/base/core/java/android/app/Notification.java
private void processSmallIconColor(Icon smallIcon, RemoteViews contentView) {
boolean colorable = !isLegacy() || getColorUtil().isGrayscaleIcon(mContext, smallIcon);
if (colorable) {
contentView.setDrawableParameters(R.id.icon, false, -1, resolv