android的空間樣式主要包括控件各種狀態下背景圖片或顏色,控件中字體顏色。
這裡解釋一下個狀態是什麼意思,android中控件有如下幾個狀態
普通
state_enabled 是否有效
state_focused 是否聚焦
state_pressed 是否被按下
其中state_focused 和 state_pressed 可自由有如下4種組合
android:state_focused="true" android:state_pressed="true"
android:state_focused="true" android:state_pressed="false"
android:state_focused="false" android:state_pressed="true"
android:state_focused="false" android:state_pressed="false"
可以看出android控件有著很多不同狀態,在不同的狀態下有著不同的樣式,比如不同的背景,請註意android控件的背景絕大部份是使用圖片表示。
另外android中控件在屏幕中有兩種模式,分別是:
1 普通模式
2 觸摸模式 touchmode
根據經驗在控件開始顯示時,處於普通模式下,當使用軌跡球或者方向鍵都不會切換模式,但是當你使用手指觸摸屏幕時,控件會自動切換到觸控模式,離開屏幕後後再使用軌跡球或者方向鍵便有切換到普通模式,請註意在切換的過程中有時候會碰到問題,比如說離開屏幕後滾動軌跡球無效,或者重新使用屏幕時點擊無反應,這個應該是android一個不足的地方,編程時應當註意。
在這兩個模式下,前面說的狀態有不同表現,在普通模式下,一般在按下之前必須先選中,而在touchmode下,並不需要,在響應用戶操作時有不同的表現。
那什麼是控件的樣式呢,這個包括很多,控件大小,背景,前景,是否能選中,點擊等。
比如說listview中默認是黑色,選中時為亮黃色,很多朋友肯定想換掉它,那有沒有方法呢。
答案是肯定的,但是需要自己定義新的樣式也就是style,然後在使用控件時使用自定義的style。
經過我們的測試,大部分控件的樣式都可以自定義,但是有少部分尚不可行,比如說tabActivity的標簽頭選中時候的背景,menu的背景似乎都不能改變,因為它們的背景圖片都被硬編碼進系統瞭,無法通過接口設置,但是menu有個辦法繞過,那就是根本不使用系統menu,我們攔截住menu按鍵事件,在監聽器中實現自己的menu,那麼就可以隨心所欲瞭。
作者“ljbal”