編輯:關於Android編程
1 首先是 定義 item的 selector drawablelistview_item_pressed.xml
[html]
2 把selector 添加入 item ,這裡采用的是 添加進 item 采用的布局文件中
[html]
3 在 適配器中 getView 方法裡 添加 點擊事件,也可以在 listView 中的 onItemClick()方法中處理
[java]
============================
UI設計中,按鈕一般都會有多個狀態,比如:聚焦、點擊等,不同的狀態必須顯示不同的呈現形式(比如顏色、形狀的改變),這樣用戶才能感覺到按鈕被成功選中、點擊了,否則用戶體驗就會非常差了。
本篇文章就簡單地描述一下Android開發中,如何動態改變Button狀態切換時的背景。
Android的UI設計中,默認情況下,系統會為Button的點擊實現一個默認的背景切換。
例如下面這樣的一個Button:
1 2 3
<
Button
android:layout_width
=
wrap_content
android:layout_height
=
wrap_content
/>
用戶在點擊Button的時候,會有一個藍色外框顯示出來,表明Button被點擊了。如圖所示:
但是,如果想為Button添加自定義的圖片背景,如:
<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHRhYmxlIGJvcmRlcj0="0" cellpadding="0" cellspacing="0">
1
android:background=@drawable/upload
那麼,當你點擊Button的時候會發現,Button啥反應都沒有,在用戶點擊的時候Button的背景沒有任何變化,用戶無法知道到底點擊成功了沒有,所以,這不是一個好的用戶體驗。
當然,這種情況可以考慮使用ImageButton,如:
1 2 3 4
<
ImageButton
android:layout_width
=
wrap_content
android:layout_height
=
wrap_content
android:src
=
@drawable/upload
/>
ImageButton會將src所指的圖片縮小放入Button的方框內中央顯示,Button點擊前後的顯示效果如圖所示:
上面是采用系統默認的Button點擊效果,那麼,如果期望自己定義Button的點擊效果,該如何實現呢?下面,我將介紹兩種在Button被點擊時改變背景的方式,一種是采用多張背景圖片切換的方式,另一種是采用shape來定義Button狀態切換的背景顯示。
1. 多張背景圖片切換
首先,為Button准備兩張背景圖片,一張是Button未點擊時顯示的圖片,另一張是Button被點擊時顯示的圖片,如圖所示:
然後,在工程的res/drawable目錄下創建一個 xml 文件,這裡命名為:button_selector.xml
內容如下:
1 2 3 4 5 6 7 8 9
xml
version
=
1.0
encoding
=
utf-8
?>
<
selector
xmlns:android
=
http://schemas.android.com/apk/res/android
>
<
item
android:state_pressed
=
true
android:drawable
=
@drawable/up_pressed
/>
<
item
android:state_pressed
=
false
android:drawable
=
@drawable/up
/>
selector
>
說明:這裡的selector標簽就相當與Button狀態的選擇器,每一個item子項代表著Button的一種狀態,這裡我只選取了兩種狀態做示例,一種是Button被點擊,另一種是Button未被點擊。全部的Button狀態可以參考Google Android Development相關網頁:StateListDrawable
然後,在Button的標簽中,把 background 屬性的值改為 button_selector 即可:
1
android:background=@drawable/button_selector
可以運行程序試試,當點擊Button後,是不是Button的背景從左圖變化成為右圖了?
這種方法是比較直觀簡單的方法,在實際的工程中也大量使用,但也有一個缺陷,必須為所有的Button准備多張背景圖片,為每一個狀態准備一張,加大了UI設計的工作量,也加大了程序的大小。
2. 通過shape來自定義Button的UI顯示
首先,定義兩個xml文件,分別為shape_normal.xml ,shape_pressed.xml
文件中,定義shape的屬性,shape的原理參考Google Android官方文檔:
(1)shape_normal.xml
1 2 3 4 5 6 7 8
xml
version
=
1.0
encoding
=
utf-8
?>
<
shape
xmlns:android
=
http://schemas.android.com/apk/res/android
android:shape
=
rectangle
>
<
gradient
android:startColor
=
#808080
android:endColor
=
#808080
android:angle
=
-90
/>
shape
>
(2) shape_pressed.xml
1 2 3 4 5 6 7 8
xml
version
=
1.0
encoding
=
utf-8
?>
<
shape
xmlns:android
=
http://schemas.android.com/apk/res/android
android:shape
=
rectangle
>
<
gradient
android:startColor
=
#FF7F00
android:endColor
=
#EE7600
android:angle
=
-90
/>
shape
>
然後,依然定義一個 button_selector.xml文件,只不過該selector的android:drawable所指的內容,由圖片改為shape文件。
1 2 3 4 5 6 7 8 9 10
xml
version
=
1.0
encoding
=
utf-8
?>
<
selector
xmlns:android
=
http://schemas.android.com/apk/res/android
>
<
item
android:state_pressed
=
true
android:drawable
=
@drawable/shape_pressed
/>
<
item
android:state_pressed
=
false
android:drawable
=
@drawable/shape_normal
/>
selector
>
然後,將所需的Button的background依然指向該selector文件,即可實現自定義Button點擊的背景切換效果.
采用這種方式的Button點擊前後的效果如圖所示:
shape可以定義的內容很豐富,包括圓角的設置,線條的粗細等等,這裡不一一演示,可以自己修改後測試效果。
ImageButton也可以采用這種方法來自定義Button點擊的背景顏色切換效果,不過要注意為ImageButton添加一個android:padding屬性,使得src的圖片與Button的邊界有一定的距離,這樣才能動態改變背景,因為ImageButton能改變的顏色只是src圖片以外的背景區域,圖片本身的顏色是不會變的。
1 2 3 4 5 6 7
<
ImageButton
android:layout_width
=
wrap_content
android:layout_height
=
wrap_content
android:src
=
@drawable/upload_pressed
android:padding
=
5dp
android:layout_centerVertical
=
true
android:background
=
@drawable/button_selector
/>
效果如圖:
在剛學習Android的時候就想自己手寫一個索引,但是當時還是彩筆,就一直沒做,昨天寫了一個索引,今天貼出來,以備後用,先上圖: 由於列表是我自己封裝的,可能必看到展示頁
為了讓用戶的使用更舒適所以有些情況使用動畫是很有必要的,Android在3.0以前支持倆種動畫Tween動畫以及Frame動畫。Tween動畫支持簡單的平移,縮放,旋轉,
本文實例講述了Android編程滑動效果之倒影效果實現方法。分享給大家供大家參考,具體如下:前面介紹了使用《Android編程實現3D滑動旋轉效果的方法》,現在介紹圖片倒
先給大家展示效果圖:1.新建TestFragmen繼承Fragmentpublic class TestFragment extends Fragment { priv