Android 點選水波紋擴散效果( Ripple Effect )
阿新 • • 發佈:2018-12-30
<span style="font-family: Arial, Helvetica, sans-serif;"><pre style="font-family: 宋體; font-size: 9pt; background-color: rgb(255, 255, 255);">文章轉載自:http://www.tuicool.com/articles/NFr6jie</span>
效果圖:
以下介紹的實現方式都是呼叫Android5.0的新API,並非自定義實現,所以支援在Android5.0的裝置.
而大家想相容低系統版本的話,就需要新建v21(即Android5.0)的Resource Directory.
圓角背景的水波紋效果(如上圖)
1. 定義一個普通圓角背景的xml;
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>
2. 這裡是重點,<ripple>是API21才有的新Tag,正是實現水波紋效果的;
其中<ripple android:color="#FF21272B" .... />這個是指定水波紋的顏色.
而<item />裡面的東西,我們都很熟悉,就是普通的定義一個帶圓角的背景.
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>
3. 這是Activity的佈局xml;
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.duhuan.rippleeffect.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/ripple_bg"
android:text="Hello World!" />
</RelativeLayout>