3

我的應用程序使用白色字體,這是我的手機上有一個黑色的主題是好的。 但在其他手機上,通知欄顏色和菜單背景顏色爲白色或淺色。有沒有什麼辦法(除了讓用戶選擇在應用程序設置中選擇顏色的選項)知道什麼樣的顏色或暗/主題使用手機並匹配字體顏色?如何使文本顏色與通知顏色條匹配?

+1

看一看[此帖](http://stackoverflow.com/questions/4867338/custom -notification的佈局和文本 - 顏色)。它會幫助你瞭解你能做什麼,不能做什麼。 – Andrei

回答

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> 

您應該在此注意,此樣式實際上並未引用任何內置顏色,因此最安全的方法是應用此樣式而不是某種內置顏色。

+0

此樣式僅適用於API v9及更高版本。對舊API的任何想法? – 3c71

+2

這只是一個過時的複製粘貼撕裂http://stackoverflow.com/a/4935191/238753。 – Sam

0

我使用Android:textAppearance = 「@風格/ TextAppearance.AppCompat.Notification.Title」 工作讓我