我不知道是否有可能建立與視狀態不同的外觀,所以它的作用就像一個按鈕,自定義按鈕佈局。例如,帶有ImageView和TextView的LinearLayout,以及這些狀態。狀態選擇自定義按鍵佈局(即的LinearLayout)
當按鈕處於正常狀態,顯示
image_normal.png
和文本爲紅色。當按鈕是按,顯示
image_pressed.png
,背景紅色和文字白色。當按鈕是禁用,顯示
image_disabled.png
和文字灰色。
謝謝!
我不知道是否有可能建立與視狀態不同的外觀,所以它的作用就像一個按鈕,自定義按鈕佈局。例如,帶有ImageView和TextView的LinearLayout,以及這些狀態。狀態選擇自定義按鍵佈局(即的LinearLayout)
當按鈕處於正常狀態,顯示image_normal.png
和文本爲紅色。
當按鈕是按,顯示image_pressed.png
,背景紅色和文字白色。
當按鈕是禁用,顯示image_disabled.png
和文字灰色。
謝謝!
任意視圖可具有任何背景和任何視圖可以由可點擊的,所以沒有什麼阻止您具有LinearLayout
與您所描述的背景。值得一提的是,你並不需要一個LinearLayout
有一個旁邊的圖片文字,你可以使用一個事實,即TextView
支持在使用drawable[Left|Top|Right|Bottom]
屬性文字的任何一方可繪製。
如果您的問題是關於selector
drawable的語法,我會引用您的documentation。請注意,Android從上到下評估狀態,所以明智地選擇順序。當上述條件都不適用時,最後一項應該是「默認」狀態。對於你給的例子,你可能會有類似的東西
<selector>
<item android:state_pressed="true" android:drawable="..." />
<item android:state_enabled="true" android:drawable="..." />
<item android:drawable="..." /> <!-- disabled -->
</selector>
謝謝卡拉庫裏。我知道如何爲一個視圖創建一個選擇器,但我不知道是否可以爲不同的子視圖創建不同的選擇器,以及如何「同步」所有這些選擇器。 (也感謝關於TextView的建議,在這種情況下,我想我可以使用它,但我想知道如何創建任何按鈕佈局)。 –
@FerranMaylinch你可以給子視圖android:duplicateParentState =「true」'使它們與它們的父視圖具有相同的狀態。在這種情況下,如果每個孩子都有一個可繪製的狀態列表,那麼這些孩子將使用與父代相同的狀態。 – Karakuri