Android自定义按钮纹波/脉冲效果

时间:2016-11-13 05:46:26

标签: android button android-custom-view effects

我使用以下方法创建了一个自定义循环按钮:

    <Button
    android:id ="@+id/StartButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Start"
    android:background="@drawable/button_bg_round"
    android:padding="15dp"
    android:textSize="30sp"
    android:textStyle="bold"
    android:textColor="#ffffff"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true" />

这里button_bg_round的定义如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="oval">
        <stroke android:color="#ffffff" android:width="5dp" />
        <solid android:color="#3aeaee"/>
        <size android:width="200dp" android:height="200dp"/>
    </shape>
</item>
</selector>

现在,我想在单击按钮时添加圆形纹波/脉冲效果/动画。我试图在谷歌和SO上寻找一个可能的解决方案,但找不到任何与此类按钮相关的解决方案。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

你可以像这样画画:

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:color="@color/colorAccent"
    tools:targetApi="lollipop"> <!-- ripple effect color -->
    <item android:id="@android:id/background">
        <shape android:shape="oval">
            <stroke android:color="#ffffff" android:width="5dp" />
            <solid android:color="#3aeaee"/>
            <size android:width="200dp" android:height="200dp"/>
        </shape>
    </item>
</ripple>

其中android:涟漪内的颜色是效果的颜色。