Android 特效 點(diǎn)擊特效 水波紋效果

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();
            }
        });

代碼量不多,都在這里了~~效果杠桿的!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容