android:background="?android:selectableItemBackground"
這個屬性可以設置為水波紋效果且轨,如果此時還需要設置背景色,以前都是再嵌套一層布局 設置 android:background="@color/color_white
,顯然不是最優(yōu)解絮记。
那如何在有背景顏色的情況下設置水波紋效果彤断,見代碼
<?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="#fff" />
</shape>
</item>
<item android:drawable="?attr/selectableItemBackground" />
</layer-list>
第一個item自定義背景,想要什么背景,自己寫
第二個item設置為水波紋效果
然后使用layer-list將兩個item合并砌们,這種方式只能在5.0以上用,或者drawable-v21里用這個搁进,再寫一個同名的xml浪感,像下面一種方式
另一種方式
drawable-v21中white_ripple.xml
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/base_ripple">
<!--去掉此item內容就是無界效果-->
<item>
<shape>
<!-- 中間的背景色-->
<solid android:color="@color/color_white" />
</shape>
</item>
</ripple>
drawable中white_ripple.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:drawable="@color/base_ripple" ></item>
<item android:state_selected="true" android:drawable = "@color/base_ripple"/>
<item android:state_pressed="true" android:drawable="@color/base_ripple"></item>
<item android:drawable="@color/color_white" ></item>
</selector>
另:
1.設置前景的水波紋點擊效果
android:foreground="?android:selectableItemBackground"
2.水波紋改色
在主題中進行配置代碼
<item name="colorControlHighlight">@color/accent_material_light</item>
3.需要給控件設置可點擊