最近完成了一个需要自定义RemoteViews的Notification的需求,期间遇到了不少关于颜色适配的问题,在此做一下总结
在Notification上使用我们自定义的RemoteViews时,通知栏的背景色、标题文字色跟内容文字色是我们需要注意的三种颜色,如果设置不当,可能会导致我们自定义的通知栏的通知看不清楚
一般而言,我们可以通过:
不设置自定义view的背景色,标题与内容设置系统的style来解决这个问题:
SDK21以下:
1 | // 标题样式 |
SDK21以及以上:
1 | // 标题样式 |
但是实际测试中发现,在某些国产机型上会出现设置错误的标题跟内容文字颜色的问题
因此,这边通过先构造一个系统的Notification,再取出其中对应颜色的方法,写了一个获取通知栏颜色的工具类:
1 | /** |
其中,由于Android的通知栏底色一般为白色、黑色或者透明,因此在工具类中根据标题文字色的颜色,为背景对应设置白色或透明