如何将文本颜色与通知栏颜色匹配?

3

我的应用程序使用白色字体,在我手机上使用黑色主题时可以正常显示。但是在其他手机上,通知栏颜色和菜单背景颜色为白色或浅色。除了在应用程序设置中提供给用户选择颜色的选项之外,是否有任何方法可以知道手机使用什么样的颜色或深/浅色主题,并匹配字体颜色?


1
看一下这篇帖子,它会帮助你了解你可以做什么和不能做什么。 - Andrei
2个回答

4
当您使用通知并使用内置手段设置文本时,以下行创建布局:
RemoteViews contentView = new RemoteViews(context.getPackageName(),
        com.android.internal.R.layout.status_bar_latest_event_content);

提到的布局包含以下视图,该视图负责查看通知文本:
<TextView android:id="@+id/text"
    android:textAppearance="@style/TextAppearance.StatusBar.EventContent"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:singleLine="true"
    android:ellipsize="marquee"
    android:fadingEdge="horizontal"
    android:paddingLeft="4dp"
    />

因此,需要的样式是TextAppearance.StatusBar.EventContent,其定义如下:
<style name="TextAppearance.StatusBar.EventContent">
    <item name="android:textColor">#ff6b6b6b</item>
</style>

在这里需要注意的是,这种样式实际上并没有引用任何内置颜色,因此最安全的方式是应用这种样式而不是某些内置颜色。


该风格仅适用于API v9及以上版本。有关旧版API的任何想法? - 3c71
2
这只是一个过时的复制粘贴,抄袭自https://dev59.com/4W445IYBdhLWcg3wapvF#4935191。 - Sam

0

我使用 android:textAppearance="@style/TextAppearance.AppCompat.Notification.Title" 对我有效


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接