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”