为了账号安全,请及时绑定邮箱和手机立即绑定

通知栏图标在android 5中变成白色

通知栏图标在android 5中变成白色

哔哔one 2019-06-20 16:53:49
通知栏图标在android 5中变成白色我有一个显示自定义通知的应用程序。问题是,在Android 5中运行时,通知栏中的小图标以白色显示。我怎么才能解决这个问题?
查看完整描述

3 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

完全同意用户DanielSaidi。为了ColorNotificationIcon我在写这个答案。

为此,你必须制作像这样的图标Silhouette做一些章节Transparent无论你想在哪里添加你的Colors..也就是说,

enter image description here

您可以使用

.setColor(your_color_resource_here)

注:setColor只有在Lollipop所以,你得检查一下OSVersion

if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
    Notification notification = new Notification.Builder(context)
    ...} else {
    // Lollipop specific setColor method goes here.
    Notification notification = new Notification.Builder(context)
    ...
    notification.setColor(your_color)
    ...            }

您还可以使用Lollipop作为目标SDK.

所有关于NotificationIcon给予.GoogleDeveloper控制台通知指南线.

首选通知图标大小24x24dp

mdpi    @ 24.00dp   = 24.00pxhdpi    @ 24.00dp   = 36.00pxxhdpi   @ 24.00dp   = 48.00px


查看完整回答
反对 回复 2019-06-20
?
MYYA

TA贡献1868条经验 获得超4个赞

这是Android用来显示通知图标的代码:

// android_frameworks_base/packages/SystemUI/src/com/android/systemui///   statusbar/BaseStatusBar.javaif (entry.targetSdk >
= Build.VERSION_CODES.LOLLIPOP) {
    entry.icon.setColorFilter(mContext.getResources().getColor(android.R.color.white));} else {
    entry.icon.setColorFilter(null);}

因此,您需要将目标SDK版本设置为<21图标将保持颜色。这是一个丑陋的解决办法,但它做了它应该做的事情。不管怎么说,我真的建议你跟着谷歌的设计指南: “通知图标必须完全是白色的。”

下面是如何实现它:

如果您正在使用Gradle/AndroidStudio构建应用程序,请使用build.gradle:

defaultConfig {
    targetSdkVersion 20}

否则(Eclipse等)使用AndroidManifest.xml:

<uses-sdk android:minSdkVersion="..." android:targetSdkVersion="20" />


查看完整回答
反对 回复 2019-06-20
  • 3 回答
  • 0 关注
  • 939 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信