Mały trójkąt, który chcesz zmienić, jest w tle widgetu Spinner
w postaci ActionBar
. Tło to state list drawable. Pozycje na liście stan rozciągliwej są kanału alfa 9-płatkowe, takie jak ten jeden (ten konkretny jeden jest wersja hdpi do stanu domyślnego dla Holo lekkiego tematu):
Aby zmienić kolor trójkąta trzeba zmień kilka zestawów tych 9-plasterkowych rysunków - jeden losowy dla każdej dpi i kombinacji stanów. Będziesz także potrzebować niestandardowej listy stanów do rysowania, która będzie tłem dla widżetu Spinner
.
Aby zmienić tło widgetu, musisz dostosować motyw. Jeśli używasz elementu ActionBarSherlock (ABS) zmień element actionDropDownStyle
i dla natywnego elementu ActionBar zmień element android:actionDropDownStyle
(nawet jeśli używasz rodzimej biblioteki ActionBar, jest ona używana dla urządzeń z Androidem 4.0 lub nowszym).
Tematem powinno być coś takiego:
<style name="MyTheme" parent="SomeParentStyle>
<item name="actionDropDownStyle">@style/MyActionBarSpinnerStyle</item><!-- if you use ABS -->
<item name="android:actionDropDownStyle">@style/MyActionBarSpinnerStyle</item>
</style>
I MyActionBarSpinnerStyle
powinno być coś takiego:
<style name="MyActionBarSpinnerStyle" parent="@style/MyDropDownActionBarStyle">
<item name="android:background">@drawable/my_custom_state_list_drawable</item>
</style>
Gdzie zamiast MyDropDownActionBarStyle
tam powinno być coś jak Widget.Sherlock.Light.Spinner.DropDown.ActionBar
jeśli używasz ABS lub Widget.Holo.Light.Spinner.DropDown.ActionBar
jeśli ciebie docelowy tylko macierzysty ActionBar.