Android 5.0新特性了解 ---- 水波纹

1、本文介绍的是Android5.0中其中一个炫酷的效果,点击水波纹扩散效果( RippleEffect),以下介绍的实现方式都是调用Android5.0的新API,并非自定义实现,所以支持在Android5.0的设备,而大家想兼容低系统版本的话,就需要新建v21(即Android5.0)的Resource Directory.

   效果如下:(ps:由于公司这台机子的模拟器跑不起来,只好在网上copy别人的效果了)

2,定义一个普通圆角背景的rounded_corners.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#FFFFFF" />
    <corners android:radius="4dp" />
</shape>

3,创建一个ripple_bg.xml 
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="#FF21272B">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="#FFFFFF" />
            <corners android:radius="4dp" />
        </shape>
    </item>
    <item android:drawable="@drawable/rounded_corners" />
</ripple>

4,直接在要使用这个效果的控件上的地方填上如下代码:
android:background="@drawable/ripple_bg"

补充:当你使用了Material主题后,波纹动画会自动应用在所有的控件上,我们当然可以来设置其属性来调整到我们需要的效果。可以不使用以上代码来实现,直接在要实现这个效果的控件上添加一下代码:
android:background="?android:attr/selectableItemBackground"波纹有边界
 
android:background="?android:attr/selectableItemBackgroundBorderless"波纹超出边界

效果如下(第一个是什么都没写,使用默认的):

猜你喜欢

转载自iaiai.iteye.com/blog/2309333