總綱:
一. 沒有邊界的Ripple(Ripple With No Mask)
二. 用顏色作為Mask的Ripple(Ripple With Color Mask)磷账,然而顏色并沒有什么卵用
三. 用圖片作為Mask的Ripple(Ripple With Picture Mask)
四. 用設定形狀作為Mask的Ripple(Ripple With Shape Mask)
五. 搭配selector作為Ripple(Ripple With Selector)
- 沒有邊界的Ripple(Ripple With No Mask)
<ripple>標簽
Ripple標簽聪蘸,即對應一個RippleDrawable悠轩,當它被設置為一個控件的background屬性時沈善,控件在按下時丐黄,即會顯示水波效果
ripple_red.xml
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#FF0000" >
</ripple>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ripple_red"
android:clickable="true"
android:gravity="center"
android:text="Ripple With No Mask" />
-
用顏色作為Mask的Ripple(Ripple With Color Mask)澎迎,然而顏色并沒有什么卵用乱投,對于限定邊界還是有用的
如果在一個ripple標簽中送爸,添加一個item铛嘱,其id為@android:id/mask,drawable屬性為引用的顏色(color) 袭厂,則水波效果會限定在drawable對應的RippleDrawable本身矩形區(qū)域內部墨吓。
ripple_red_with_white_mask.xml
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#FF0000" >
<item android:id="@android:id/mask"
android:drawable="@android:color/white" />
</ripple>
-
用圖片作為Mask的Ripple(Ripple With Picture Mask)
如果在一個ripple標簽中,添加一個item嵌器,其id為@android:id/mask肛真,drawable屬性為引用的圖片(png,jpg),則水波效果會限定在圖片drawable中非透明部分對應的區(qū)域內部爽航。
ripple_red_with_pic_mask
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#FF0000" >
<item android:id="@android:id/mask"
android:drawable="@drawable/icon_folder_r" />
</ripple>
-
用設定形狀作為Mask的Ripple(Ripple With Shape Mask)
如果在一個ripple標簽中蚓让,添加一個item,其id為@android:id/mask讥珍,drawable屬性為引用的形狀(shape) 历极,則水波效果會限定在shape對應的區(qū)域內部。
先定義shape:shape.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#ff9d77"/>
<corners
android:bottomRightRadius="100dp"/>
</shape>
在定義ripple:ripple_red_with_shape_mask
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#FF0000" >
<item
android:id="@android:id/mask"
android:drawable="@drawable/shape"/>
</ripple>
-
搭配selector作為Ripple(Ripple With Selector)
如果在一個ripple標簽中衷佃,添加一個item趟卸,在item的內部寫上<selector>標簽,那么這個RippleDrawable在按下的時候氏义,同時具有水波效果和selector指定的圖層锄列。
ripple_red_with_selector
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#FF0000" >
<item>
<selector>
<item
android:drawable="@drawable/icon_folder_i"
android:state_pressed="true">
</item>
<item
android:drawable="@drawable/icon_folder_r"
android:state_pressed="false">
</item>
</selector>
</item>
</ripple>