什么是所有Android版本的默认通知背景颜色?

时间:2015-10-13 14:45:42

标签: android background notifications

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

1 个答案:

答案 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);
        }
    }
}