2012-06-26 7 views
13

używam Sherlock Actionbarjak zmienić homeButton Hilight Kolor kiedy prasa

1, chcę przycisk Zmień Home BG po naciśnięciu od niebieskiego do czerwonego

2, chcę ikona zmiana HomeAsUp (biała strzałka) każda pomysł ?

enter image description here przycisk Start

enter image description here wciśnięty

tutaj jest tworzony ten kod actionbar

extends SherlockFragmentActivity 

public ActionBar actionBar; 

this.actionBar = this.getSupportActionBar(); 
this.actionBar.setDisplayShowHomeEnabled(true); 
this.actionBar.setHomeButtonEnabled(true); 
this.actionBar.setDisplayHomeAsUpEnabled(true); 

Odpowiedz

19

Możesz to zmienić, określając własny atrybut actionBarItemBackground w swoim motywie.

Na przykład

<style name="Theme.MyTheme" parent="Theme.Sherlock"> 
    <item name="android:actionBarItemBackground">@drawable/my_cool_drawable</item> 
    <item name="actionBarItemBackground">@drawable/my_cool_drawable</item> 
</style> 

a następnie określ Theme.MyTheme w manifeście do swojej działalności.

+0

Czy możemy użyć selektora dla ikony domowej i wskaźnika górnego ( @ drawable/action_bar_home_as_up_indicator, ale tylko jeden stan jest wyświetlany niezależnie od wciśnięty/bez naciśnięcia. –

+0

Nie, ikona domu ani ikona "góra" nie odzwierciedlają stanu. –

2

zwykle, gdy chcesz stworzyć to zachowanie w Androidzie, trzeba utworzyć nowy selector plik (xml w folderze /drawable).

w tym pliku, co chcesz zrobić, to wybrać różne stany dla przycisku i wybrać różne obrazy dla nich.

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:drawable="@drawable/pressed_image" android:state_pressed="true"></item> 
    <item android:drawable="@drawable/regular_image"></item> 

</selector> 

edit:

trzeba to zrobić w bibliotece ActionBarSherlock oczywiście.