1.Shape
作用:XML中定義的幾何形狀
位置:res/drawable/文件的名稱.xml
使用的方法:
Java代碼中-R.drawable.文件的名稱
XML中-Android:background="@drawable/文件的名稱"
屬性:
<shape> Android:shape=["rectangle" | "oval" | "line" | "ring"]
其中rectagle矩形,oval橢圓,line水平直線,ring環(huán)形
<shape>中子節(jié)點的常用屬性:
<gradient> 漸變
Android:startColor
起始顏色
Android:endColor
結(jié)束顏色
Android:angle
漸變角度,0從左到右,90表示從下到上,數(shù)值為45的整數(shù)倍,默認為0;
Android:type
漸變的樣式 liner線性漸變 radial環(huán)形漸變 sweep
<solid > 填充
Android:color
填充的顏色
<stroke >描邊
Android:width
描邊的寬度
Android:color
描邊的顏色
Android:dashWidth
表示'-'橫線的寬度
Android:dashGap
表示'-'橫線之間的距離
<corners >圓角
Android:radius
圓角的半徑 值越大角越圓
Android:topRightRadius
右上圓角半徑
Android:bottomLeftRadius
右下圓角角半徑
Android:topLeftRadius
左上圓角半徑
Android:bottomRightRadius
左下圓角半徑
<padding >填充
android:bottom="1.0dip"
底部填充
android:left="1.0dip"
左邊填充
android:right="1.0dip"
右邊填充
android:top="0.0dip"
上面填充
2.Selector
根據(jù)不同的選定狀態(tài)來定義不同的現(xiàn)實效果
分為四大屬性:
android:state_selected 是選中
android:state_focused 是獲得焦點
android:state_pressed 是點擊
android:state_enabled 是設(shè)置是否響應(yīng)事件,指所有事件
android:state_window_focused 默認時的背景圖片
引用位置:res/drawable/文件的名稱.xml
使用的方法:
Java代碼中-R.drawable.文件的名稱
XML中-Android:background="@drawable/文件的名稱"
[html] view plain copy 在CODE上查看代碼片派生到我的代碼片
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:Android="http://schemas.android.com/apk/res/android">
<!-- 默認時的背景圖片-->
<item Android:drawable="@drawable/pic1" />
<!-- 沒有焦點時的背景圖片 -->
<item
Android:state_window_focused="false"
android:drawable="@drawable/pic_blue"
/>
<!-- 非觸摸模式下獲得焦點并單擊時的背景圖片 -->
<item
Android:state_focused="true"
android:state_pressed="true"
android:drawable= "@drawable/pic_red"
/>
<!-- 觸摸模式下單擊時的背景圖片-->
<item
Android:state_focused="false"
Android:state_pressed="true"
Android:drawable="@drawable/pic_pink"
/>
<!--選中時的圖片背景-->
<item
Android:state_selected="true"
android:drawable="@drawable/pic_orange"
/>
<!--獲得焦點時的圖片背景-->
<item
Android:state_focused="true"
Android:drawable="@drawable/pic_green"
/>
</selector>
3.layer-list
將多個圖片或上面兩種效果按照順序?qū)盈B起來
例子:
[html] view plain copy 在CODE上查看代碼片派生到我的代碼片
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/android_red"
android:gravity="center" />
</item>
<item android:top="10dp" android:left="10dp">
<bitmap android:src="@drawable/android_green"
android:gravity="center" />
</item>
<item android:top="20dp" android:left="20dp">
<bitmap android:src="@drawable/android_blue"
android:gravity="center" />
</item>
</layer-list>
[html] view plain copy 在CODE上查看代碼片派生到我的代碼片
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/layers" />
4.最后
以上三個標簽可以揉合到一塊兒來使用,所要實現(xiàn)的效果就是上面三種標簽的說明,比如下面這個例子:
[html] view plain copy 在CODE上查看代碼片派生到我的代碼片
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<layer-list>
<item android:bottom="8.0dip">
<shape>
<solid android:color="#ffaaaaaa" />
</shape>
</item>
<item>
<shape>
<corners
android:bottomLeftRadius="4.0dip" android:bottomRightRadius="4.0dip"
android:topLeftRadius="1.0dip" android:topRightRadius="1.0dip" />
<solid android:color="#ffaaaaaa" />
<padding android:bottom="1.0dip" android:left="1.0dip" android:right="1.0dip" android:top="0.0dip" />
</shape>
</item>
<item>
<shape>
<corners
android:bottomLeftRadius="3.0dip" android:bottomRightRadius="3.0dip"
android:topLeftRadius="1.0dip" android:topRightRadius="1.0dip" />
<solid android:color="@color/setting_item_bgcolor_press" />
</shape>
</item>
</layer-list>
</item>
<item>
<layer-list>
<item android:bottom="8.0dip">
<shape>
<solid android:color="#ffaaaaaa" />
</shape>
</item>
<item>
<shape>
<corners
android:bottomLeftRadius="4.0dip" android:bottomRightRadius="4.0dip"
android:topLeftRadius="1.0dip" android:topRightRadius="1.0dip" />
<solid android:color="#ffaaaaaa" />
<padding android:bottom="1.0dip" android:left="1.0dip" android:right="1.0dip" android:top="0.0dip" />
</shape>
</item>
<item>
<shape>
<corners
android:bottomLeftRadius="3.0dip" android:bottomRightRadius="3.0dip"
android:topLeftRadius="1.0dip" android:topRightRadius="1.0dip" />
<solid android:color="@color/setting_item_bgcolor" />
</shape>
</item>
</layer-list>
</item>
</selector>