1、Android 5.0以上超出邊界圓形水波紋
android:background="?android:attr/actionBarItemBackground"’
2、Android 5.0以上超出邊界內(nèi)圓形水波紋
android:background="?android:attr/selectableItemBackground"
3、自定義
一定要實(shí)現(xiàn)onclick事件,才能看到效果,否則無(wú)效!

點(diǎn)擊前

點(diǎn)擊中

點(diǎn)擊中
最終效果是,水波紋延伸至按鈕邊界,看看詳細(xì)編碼吧。。。
- colors.xml:
<!--紅底 點(diǎn)擊時(shí)水波紋顏色-->
<color name="color_dd4646">#dd4646</color>
<color name="colorPress_dd4646">#dd4646</color>
<color name="color_ff5151">#ff5151</color>
<!--白底 點(diǎn)擊時(shí)水波紋顏色-->
<color name="colorRipple">#e0e0e0</color>
- drawable下的btn_bg.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/colorPress_dd4646" android:state_pressed="true" />
<item android:drawable="@color/color_dd4646" />
</selector>
- drawable-v21下的btn_bg.xml:
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/colorRipple">
<item>
<shape android:shape="rectangle">
<solid android:color="@color/color_ff5151" />
</shape>
</item>
</ripple>
- activity_main.xml:
<?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"
android:gravity="center_horizontal|center_vertical">
<Button
android:id="@+id/ll_btn"
android:layout_width="300dp"
android:layout_height="150dp"
android:background="@drawable/btn_bg"
android:text="點(diǎn)擊我出現(xiàn)水波紋效果"
android:padding="10dp" />
</LinearLayout>
- MainActivity.java實(shí)現(xiàn)點(diǎn)擊事件:
Button llb=findViewById(R.id.ll_btn);
llb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"123",Toast.LENGTH_LONG).show();
}
});