2015-10-13 113 views
0

不同的Android版本具有不同的默认通知背景颜色。我使用自定义通知布局,我需要知道什么是所有Android版本(从8到23)的默认通知背景颜色。我没有找到任何可以找到的列表。先谢谢你。什么是所有Android版本的默认通知背景颜色?

+0

如果使用自定义布局,为什么默认颜色事项? –

回答

0

我不知道,你可以得到这样的列表,因为它改变了不同的版本/设备,如文档指出:

始终使用样式资源自定义通知的文本。通知的背景颜色可能会因不同的设备和版本而异,使用样式资源可帮助您解决此问题。从Android 2.3开始,系统为标准通知布局文本定义了一种样式。如果您在面向Android 2.3或更高版本的应用程序中使用相同的样式,则可以确保您的文字在显示背景中可见。

从源代码中你可以看到它是如何设置:

protected void applyLegacyRowBackground(StatusBarNotification sbn, View content) { 
    if (sbn.notification.contentView.getLayoutId() != 
      com.android.internal.R.layout.notification_template_base) { 
     int version = 0; 
     try { 
      ApplicationInfo info = mContext.getPackageManager().getApplicationInfo(sbn.pkg, 0); 
      version = info.targetSdkVersion; 
     } catch (NameNotFoundException ex) { 
      Slog.e(TAG, "Failed looking up ApplicationInfo for " + sbn.pkg, ex); 
     } 
     if (version > 0 && version < Build.VERSION_CODES.GINGERBREAD) { 
      content.setBackgroundResource(R.drawable.notification_row_legacy_bg); 
     } else { 
      content.setBackgroundResource(com.android.internal.R.drawable.notification_bg); 
     } 
    } 
} 
相关问题