天天看点

Android之给控件添加水纹波效果

1 问题

给控件添加水纹波效果,点击起来像点中了,不然效果太粗糙了,没反应。

2 实现

给控件添加如下属性

android:background="?android:attr/selectableItemBackground"波纹有边界
android:background="?android:attr/selectableItemBackgroundBorderless"波纹超出边界      

边界

设置水纹波颜色

android:colorControlHighlight:      

3 需要注意地方

1)在哪个控件上点击需要有效果必须设置为点击事件

所以只需要为View 设置
android:clickable="true"
或者
.setOnClickListener(null);      

2)自己测试双层view包裹没效果,比如下面

<LinearLayout android:background="?android:attr/selectableItemBackground">
    <LinearLayout>
        <AppCompatTextView>
        </AppCompatTextView>
    </LinearLayout>
</LinearLayout>      

 3) 自己测试单层view包裹有效果,比如下面

<LinearLayout>
    <LinearLayout android:background="?android:attr/selectableItemBackground">
        <AppCompatTextView>
        </AppCompatTextView>
    </LinearLayout>
</LinearLayout>      

继续阅读