Android Button 點選效果

BoneLamp發表於2018-08-30

5.0以下切換背景,以上為漣漪效果

1.切換Button背景

在drawable下建立ripple_bg.xml檔案 例如:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!--按下點選-->
    <item android:state_pressed="true" android:state_enabled="true">
        <shape >
             <!--背景色-->
            <solid android:color="@color/colorPrimary"/>
        </shape>
    </item>

    <!--正常狀態-->
    <item android:state_pressed="false" android:state_enabled="false">
        <shape >
            <!-- 背景色 -->
            <solid android:color="@color/colorAccent"/>
        </shape>
    </item>


</selector>

Button漣漪效果(使用系統的ripple)

因為是系統是爭對5.0以上的,需要在專案建立drawable-v21目錄,新增ripple_bg.xml即可 程式碼如下:

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="#FF21272B"><!--漣漪背景色 -->

    <item android:id="@android:id/mask"> <!--mask 可以新增一些有趣的影象效果,會按照影象的輪廓來產生漣漪範圍-->
        <shape android:shape="rectangle">
            <solid android:color="#8cc476"/> <!--預設背景色-->
        </shape>
    </item>

</ripple>

最後在Button按鈕上新增

android:background="@drawable/ripple_bg"

PS:這裡會涉及到根據版本去尋找對應的drawable,不在討論範圍之內。

相關文章