选择按钮时如何保持涟漪效果

时间:2015-08-24 09:13:03

标签: android selector ripple

我有一个带有连锁效果的按钮,它有两种状态 一个是“常规”的涟漪效应,另一个是选中的 背景发生了变化,但有两个问题:

  1. 用颜色着色的孔按钮,我只想为按钮的椭圆形颜色着色
  2. 更改按钮的背景颜色时,纹波效果不会持久
  3. <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
       <item android:state_selected="true" android:drawable="@color/cal_selected"/>
        <item android:drawable="@drawable/cal_day_regualr">
            <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="?android:attr/colorActivatedHighlight">
                <item android:id="@android:id/mask">
                    <shape android:shape="oval">
                        <solid android:color="@color/cal_background" />
                    </shape>
                </item>
            </ripple>
        </item>
    </selector>
    

1 个答案:

答案 0 :(得分:0)

我设法通过向选定状态添加另一个波纹来实现此目的 请参阅以下代码:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true">

        <ripple android:color="@color/cal_selected_ripple">
            <item>
                <shape android:shape="oval">
                    <solid android:color="@color/cal_selected" />
                </shape>
            </item>
        </ripple>

    </item>
    <item>
        <ripple android:color="?android:attr/colorActivatedHighlight">
            <item android:id="@android:id/mask">
                <shape android:shape="oval">
                    <solid android:color="@color/cal_background" />
                </shape>
            </item>
        </ripple>
    </item>
</selector>