1. 程式人生 > >Android 5.0+ 自定義普通按鈕的ripple波紋效果

Android 5.0+ 自定義普通按鈕的ripple波紋效果

Android 5.0中新增了ripple型別,即波紋效果

在res中新增一個新的資料夾drawable-v21,用於儲存波紋效果

button_ripple_orange.xml

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <ripplexmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:color="#FFEEEEEE">
  4.     <itemandroid:drawable="@drawable/button_bg_orange"/>
  5. </
    ripple>

ripple相當於layer-list層疊效果,ripple元素的color屬性即指定了波紋效果的顏色,但必須是8位顏色程式碼值,前兩位指定了波紋的透明度,後六位即波紋顏色,以黑色000000及白色FFFFFF效果最為明顯
<item android:drawable="@drawable/button_bg_orange" />即指定了按鈕的正常狀態的顯示效果
button_bg_orange.xml
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <shapexmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:shape="rectangle">
  4.     <cornersandroid:radius="@dimen/button_corner_radius"/>
  5.     <solidandroid:color="@color/theme"/>
  6. </shape>
將button_ripple_orange設定為按鈕Background即可在按鈕上實現點選波紋效果,但必須是API 21以上版本
如果只是普通的波紋效果,當你使用了Material主題後,波紋動畫會自動應用在所有的控制元件上,也可以自己來設定其屬性來調整到我們需要的效果。


可以通過如下程式碼設定波紋的背景:

android:background="?android:attr/selectableItemBackground"波紋有邊界

android:background="?android:attr/selectableItemBackgroundBorderless"波紋超出邊界