The NoteBook of EricKong

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks

          首先寫一個定義Button樣式的XML文件:
          新建Android XML文件,類型選Drawable,根結點選selector,文件名就buton_style吧。
          程序自動給我們剛剛建的文件里加了selector結點,我們只需要在selector結點里寫上三種狀態時顯示的背景圖片(按下、獲取焦點,正常)。
          代碼如下:

          1
          2
          3
          4
          5
          6
          
          <?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/play_press" />
          	<item android:state_focused="true" android:drawable="@drawable/play_press" />
          	<item android:drawable="@drawable/play" />
          </selector>

          我這里獲取焦點跟點擊時顯示的是同一張圖片,必須嚴格照上面的順序寫,不可倒。
          接下來只要在布局時寫Button控件時應用到Button的Background屬性即可。

          1
          2
          3
          4
          
          <Button android:id="@+id/button1"
          	android:layout_width="wrap_content" android:layout_height="wrap_content"
          	android:background="@drawable/button_style"
          ></Button>

          最終效果圖:

          點擊時會變。
          源代碼下載:
          Button_style (313)
          再加上一種自定義樣式方法,上面的是用圖片,其實我們可以直接通過定義xml文件來實現不同的樣式:
          在上面的源代碼基礎上,只需要修改button_style文件,同樣三種狀態分開定義:

          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          14
          15
          16
          17
          18
          19
          20
          21
          22
          23
          24
          25
          26
          27
          28
          29
          30
          31
          32
          33
          34
          35
          
          <?xml version="1.0" encoding="utf-8"?>
          <selector xmlns:android="http://schemas.android.com/apk/res/android">
          	<item android:state_pressed="true">
          		<shape>
          			<gradient android:startColor="#0d76e1" android:endColor="#0d76e1"
          				android:angle="270" />
          			<stroke android:width="1dip" android:color="#f403c9" />
          			<corners android:radius="2dp" />
          			<padding android:left="10dp" android:top="10dp"
          				android:right="10dp" android:bottom="10dp" />
          		</shape>
          	</item>
           
          	<item android:state_focused="true">
          		<shape>
          			<gradient android:startColor="#ffc2b7" android:endColor="#ffc2b7"
          				android:angle="270" />
          			<stroke android:width="1dip" android:color="#f403c9" />
          			<corners android:radius="2dp" />
          			<padding android:left="10dp" android:top="10dp"
          				android:right="10dp" android:bottom="10dp" />
          		</shape>
          	</item>
           
          	<item>
          		<shape>
          			<gradient android:startColor="#000000" android:endColor="#ffffff"
          				android:angle="180" />
          			<stroke android:width="1dip" android:color="#f403c9" />
          			<corners android:radius="5dip" />
          			<padding android:left="10dp" android:top="10dp"
          				android:right="10dp" android:bottom="10dp" />
          		</shape>
          	</item>
          </selector>

          gradient 主體漸變 startColor開始顏色,endColor結束顏色 ,angle開始漸變的角度(值只能為90的倍數,0時為左到右漸變,90時為下到上漸變,依次逆時針類推)
          stroke 邊框 width 邊框寬度,color 邊框顏色
          corners 圓角 radius 半徑,0為直角
          padding text值的相對位置

          posted on 2012-02-27 18:04 Eric_jiang 閱讀(22275) 評論(0)  編輯  收藏 所屬分類: Android
          主站蜘蛛池模板: 大荔县| 桓台县| 尉犁县| 易门县| 武安市| 寿宁县| 九江县| 长阳| 马山县| 天镇县| 英超| 海盐县| 龙井市| 毕节市| 开鲁县| 祁阳县| 永胜县| 施秉县| 汉沽区| 黑山县| 安徽省| 蚌埠市| 宽城| 五台县| 尚义县| 东乌珠穆沁旗| 西贡区| 加查县| 锦屏县| 丰县| 巫山县| 绿春县| 韶关市| 新乡县| 孙吴县| 乃东县| 手游| 张家界市| 温泉县| 湖口县| 沂水县|