SORU
1 ŞUBAT 2011, Salı


Özel bildirim düzenleri ve metin rengi

Benim uygulama bazı bildirimleri gösterir ve kullanıcı tercihlerine bağlı olarak bir bildirim özel bir düzen kullanın. İyi çalışıyor, ama küçük bir sorun varmetin rengi. Stok Android ve neredeyse tüm üretici derileri kullanın siyah metin karşı bir ışık arka plan için bildirim metni, ama Samsung yok: ihbarlarını açılan bir karanlık arka plan ve metin varsayılan bildirim düzeni beyaz.

Peki bu neden bir sorun: bildirimleri kullanmıyorum herhangi bir fantezi düzenleri göstermek güzel, ama bir o kullanır, özel bir düzen çok zor çünkü okuma metni siyah yerine varsayılan beyaz. official documentation bile sadece bir püf noktası var bulamadım ** 4, #000 rengi ayarlar.

Bir kullanıcı tür bir sorunun bir ekran görüntüsünü almak için yeterli oldu:

Screenshot

Bu yüzdennasıl cihazdan varsayılan bildirim metin rengi kullanabilirimbenim düzenleri? Yapmasam daha başlangıç dinamik olarak değiştirme metin rengi tabanlı telefon modeli gerektirir beri birçok güncelleme ve insanları ile bir özel ROM olabilir hala sorun bağlı olarak deri kullanıyorlar.

CEVAP
8 ŞUBAT 2011, Salı


Çözüm dahili stilleri kullanabilirsiniz. İhtiyacınız olan tarzı Android 2.3 ve Android 4 TextAppearance.StatusBar.EventContent denir.x. Android 5'te.x malzeme bildirimleri diğer birçok stilleri kullanın: TextAppearance.Material.Notification, TextAppearance.Material.Notification.Title TextAppearance.Material.Notification.Line2. Sadece metin görüntülemek için uygun bir metin görünümünü ayarlamak ve gerekli renkler elde edeceksiniz.

Eğer bu çözüm vardım nasıl ilgileniyorsanız, burada kırıntıları benim peşimde. Kod alıntılar Android 2.3 alınır.

  1. Notification kullanın ve yerleşik araçlarını kullanarak metni ayarlayın, aşağıdaki satırı düzen oluşturur:

    RemoteViews contentView = new RemoteViews(context.getPackageName(),
            com.android.internal.R.layout.status_bar_latest_event_content);
    
  2. Söz konusu düzeni aşağıdaki bildirim metin görüntüleme için gerekli olan: View içerir

    <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"
        />
    
  3. Yani sonuç gerekli stili bu gibi görünüyor TextAppearance.StatusBar.EventContent olmasıdır:

    <style name="TextAppearance.StatusBar.EventContent">
        <item name="android:textColor">#ff6b6b6b</item>
    </style>
    

    Bu stil aslında yerleşik renk herhangi bir referans değilse buraya dikkat etmelisiniz, en güvenli yol bu, bazı yerleşik renk yerine bu stili uygulamaktır.

Bir şey daha: Android 2.3 önce (Seviye 9 API), ne stil, ne de renkler vardı, sadece kodlanmış değerleri vardı. Eğer bazı nedenlerden dolayı böyle eski sürümleri desteklemek için ne ise, answer by Gaks bkz .

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Just So

    Just So

    3 HAZİRAN 2007
  • TheFlashCentre

    TheFlashCent

    22 Mayıs 2008
  • TomSka

    TomSka

    30 Mayıs 2006