Projemde kullanıyorum Android Navigation bar
, eylem çubuğundaki en üst rengi kırmızı bir şeye dönüştürmek istiyorum, bunu nasıl yapabilirim? Bende bunun gibi bir şey var
ve bunun gibi bir şey istiyorum
bunu nasıl başarabilirim?
Yanıtlar:
Özel bir Stil oluşturarak ActionBar'ın (ve diğer öğelerin) rengini tanımlayabilirsiniz :
Android projenizin res / values / styles.xml dosyasını düzenlemeniz yeterlidir .
Örneğin bunun gibi:
<resources>
<style name="MyCustomTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBarTheme</item>
</style>
<style name="MyActionBarTheme" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">ANY_HEX_COLOR_CODE</item>
</style>
</resources>
Ardından "MyCustomTheme" öğesini ActionBar içeren Aktivitenizin Teması olarak ayarlayın.
ActionBar için aşağıdaki gibi bir renk de ayarlayabilirsiniz:
ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.RED)); // set your desired color
Buradan alınmıştır: XML kullanarak bir ActionBarActivity'nin ActionBar'ının arka plan rengini nasıl değiştirebilirim?
setTheme(R.style.MyCustomTheme)
, etkinliğinizin onCreate yönteminde kullanın .
Genel olarak Android işletim sistemi, uygulama geliştiricilerinin evrensel olarak bir dizi evrensel UI öğesi stil parametresini Android uygulamalarına bir bütün olarak veya alternatif olarak tek bir Etkinlik alt sınıfına uygulamasına izin vermek için bir "tema" dan yararlanır.
Dolayısıyla, Sürüm 3.0 ve sonraki sürümler için uygulamalar geliştirirken Android Manifest XML dosyanızda belirtebileceğiniz üç ana Android işletim sistemi "sistem teması" vardır.
Burada (APPCOMPAT) destek kitaplığından bahsediyorum: - Yani üç tema 1. AppCompat Light Theme (Theme.AppCompat.Light)
AndroidManifest.xml ve etiketine bakın, android temasından şu şekilde bahsedilir: - android: theme = "@ style / AppTheme"
Styles.xml dosyasını açın ve orada açıklanan temel uygulama temamız var: -
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
</style>
Eylem çubuğunu biçimlendirmek için bu ana tema öğelerini geçersiz kılmamız gerekir.
Farklı renk arka planına sahip ActionBar: -
Bunu yapmak için, Android ActionBar kullanıcı arabirimi öğesinin stil özelliklerini tutan @ style / Widget.AppCompat.Light.ActionBar.Solid.Inverse'e üst referans ile yeni bir MyActionBar stili (herhangi bir ad verebilirsiniz) oluşturmamız gerekir . Yani tanım
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="background">@color/red</item>
</style>
Ve bu tanım, AppTheme'mizde, geçersiz kılınan ActionBar stilini şu şekilde işaret ederek:
Başlık çubuğu metin rengini değiştirin (örneğin siyahtan beyaza): -
Şimdi başlık metni rengini değiştirmek için, parent = "@ style / TextAppearance.AppCompat.Widget.ActionBar.Title"> üst referansını geçersiz kılmamız gerekiyor.
Yani stil tanımı şöyle olacaktır:
<style name="MyActionBarTitle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/white</item>
</style>
TitleTextStyle değişikliği, ActionBar üst OS UI öğesinin alt öğesi olduğundan , MyActionBar stil tanımının içinde bu stil tanımına başvuracağız. Dolayısıyla, MyActionBar stil öğesinin son tanımı
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="background">@color/red</item>
<item name="titleTextStyle">@style/MyActionBarTitle</item>
</style>
SO bu son Styles.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- This is the styling for action bar -->
<item name="actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="background">@color/red</item>
<item name="titleTextStyle">@style/MyActionBarTitle</item>
</style>
<style name="MyActionBarTitle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/white</item>
</style>
</resources>
Daha fazla ActionBar seçeneği için Menü stili bu bağlantıya bakın
Yalnızca Android 3.0 ve üstü için
Yalnızca Android 3.0 ve sonraki sürümleri desteklerken, işlem çubuğunun arka planını şu şekilde tanımlayabilirsiniz:
res / values / themes.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme" parent="@style/Theme.Holo.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBar" parent="@style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">#ff0000</item>
</style>
</resources>
Android 2.1 ve üstü için
Destek Kitaplığı'nı kullanırken, stil XML dosyanız şöyle görünebilir:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/MyActionBar</item>
<!-- Support library compatibility -->
<item name="actionBarStyle">@style/MyActionBar</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBar"
parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@drawable/actionbar_background</item>
<!-- Support library compatibility -->
<item name="background">@drawable/actionbar_background</item>
</style>
</resources>
Ardından temanızı tüm uygulamanıza veya bireysel etkinliklerinize uygulayın:
daha fazla ayrıntı için Documentaion
No resource found that matches the given name '@style/Widget.Holo.Light.ActionBar.Solid.Inverse'.
için değiştirmek android:style/Widget.Holo.Light.ActionBar.Solid.Inverse
. Teşekkürler.
İşlem çubuğu rengini şu şekilde değiştirebilirsiniz:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/green_action_bar</item>
</style>
İşlem çubuğu rengini değiştirmek için ihtiyacınız olan her şey bu.
Artı, durum çubuğu rengini değiştirmek isterseniz, sadece satırı ekleyin:
<item name="android:colorPrimaryDark">@color/green_dark_action_bar</item>
İşte daha net hale getirmek için geliştiricinin android sitesinden alınan bir ekran görüntüsü ve burada renk paletini özelleştirme hakkında daha fazla bilgi edinmek için bir bağlantı var .
Başka bir yapma olasılığı.
actionBar.setBackgroundDrawable (yeni ColorDrawable (Color.parseColor ("# 0000ff")));
Özel renk:
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="colorPrimary">@color/ColorPrimary</item>
<item name="colorPrimaryDark">@color/ColorPrimaryDark</item>
<!-- Customize your theme here. -->
</style>
Özel Stil:
<style name="Theme.AndroidDevelopers" parent="android:style/Theme.Holo.Light">
<item name="android:selectableItemBackground">@drawable/ad_selectable_background</item>
<item name="android:popupMenuStyle">@style/MyPopupMenu</item>
<item name="android:dropDownListViewStyle">@style/MyDropDownListView</item>
<item name="android:actionBarTabStyle">@style/MyActionBarTabStyle</item>
<item name="android:actionDropDownStyle">@style/MyDropDownNav</item>
<item name="android:listChoiceIndicatorMultiple">@drawable/ad_btn_check_holo_light</item>
<item name="android:listChoiceIndicatorSingle">@drawable/ad_btn_radio_holo_light</item>
</style>
Daha Fazlası için: Android ActionBar
AppCompatActivity
Yukarıdaki cevapları kullandığım için benim için işe yaramadı. Ancak aşağıdaki çözüm işe yaradı:
In res / styles.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
</style>
Not: Bunun colorPrimary
yerine kullandımandroid:colorPrimary
style.xml'de bu kodu ekleyin
<resources>
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyAction</item>
</style>
<style name="MyActionBarTheme" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">#333333</item>
</style>
</resources>
Bunu kullanın - http://jgilfelt.github.io/android-actionbarstylegenerator/
Eylem çubuğunuzu birkaç dakika içinde canlı bir ön izleme ile özelleştirmek için iyi bir araç.