layer-list:Android中layer-list使用詳解
阿新 • • 發佈:2018-09-19
layout nbsp 分享 sel 效果圖 技術分享 ner select ati
使用layer-list可以將多個drawable按照順序層疊在一起顯示,默認情況下,所有的item中的drawable都會自動根據它附上view的大小而進行縮放,
layer-list中的item是按照順序從下往上疊加的,即先定義的item在下面,後面的依次往上面疊放
例子
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item > <shape android:shape="rectangle" > <solid android:color="#0000ff"/> </shape> </item> <item android:bottom="25dp" android:top="25dp" android:left="25dp" android:right="25dp"> <shape android:shape="rectangle" > <solidandroid:color="#00ff00" /> </shape> </item> <item android:bottom="50dp" android:top="50dp" android:left="50dp" android:right="50dp"> <shape android:shape="rectangle" > <solid android:color="#ff0000" /> </shape> </item></layer-list>
布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_width="150dp" android:layout_height="150dp" android:background="@drawable/layer_list"/> </LinearLayout>
效果圖
紅色item最後定義在最上方,綠色item中間,最先定義藍色最下邊
這裏設置了android:bottom="50dp" android:top="50dp" android:left="50dp" android:right="50dp"屬性
android:top="50dp";表示該item上邊以ImageView上邊界往裏面縮了50dp
android:bottom="50dp"表示該item下邊以ImageView下邊界往裏面縮了50dp
android:left="50dp";表示該item左邊以ImageView左邊界往裏面縮了50dp
android:right="50dp";表示該item右邊以ImageView右邊界往裏面縮了50dp
android:bottom="25dp" android:top="25dp" android:left="25dp" android:right="25dp"類似
layer-list給指定view實現三面邊框
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item > <shape android:shape="rectangle" > <solid android:color="#ff0000"/> </shape> </item> <item android:bottom="2dp" android:top="2dp" android:right="2dp"> <shape android:shape="rectangle" > <solid android:color="#ffffff" /> </shape> </item> </layer-list>
布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="150dp" android:layout_height="50dp" android:background="@drawable/border" android:layout_gravity="center" android:orientation="vertical" > </LinearLayout> </LinearLayout>
效果圖
實現帶陰影的按鈕效果:
代碼:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <!-- 灰色陰影 --> <layer-list> <item android:left="2dp" android:top="4dp"> <shape> <solid android:color="@android:color/darker_gray" /> <corners android:radius="4dp" /> </shape> </item> <!-- 紅色前景 --> <item android:bottom="4dp" android:right="2dp"> <shape> <solid android:color="#FF0000" /> <corners android:radius="4dp" /> </shape> </item> </layer-list> </item> <item> <!-- 灰色陰影 --> <layer-list> <item android:left="2dp" android:top="4dp"> <shape> <solid android:color="@android:color/darker_gray" /> <corners android:radius="4dp" /> </shape> </item> <!-- 白色前景 --> <item android:bottom="4dp" android:right="2dp"> <shape> <solid android:color="#FFFFFF" /> <corners android:radius="4dp" /> </shape> </item> </layer-list> </item> </selector>
<END>
layer-list:Android中layer-list使用詳解