2016-11-13 47 views
0

我一直在使用創建自定義的圓形按鈕,如下:Android的自定義按鈕紋波/脈衝效應

<Button 
    android:id ="@+id/StartButton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Start" 
    android:background="@drawable/button_bg_round" 
    android:padding="15dp" 
    android:textSize="30sp" 
    android:textStyle="bold" 
    android:textColor="#ffffff" 
    android:layout_centerVertical="true" 
    android:layout_centerHorizontal="true" /> 

這裏button_bg_round定義如下:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item> 
    <shape android:shape="oval"> 
     <stroke android:color="#ffffff" android:width="5dp" /> 
     <solid android:color="#3aeaee"/> 
     <size android:width="200dp" android:height="200dp"/> 
    </shape> 
</item> 
</selector> 

現在,我想添加一個圓形點擊按鈕時的波紋/脈衝效果/動畫。我試圖尋找谷歌和SO的可能解決方案,但無法找到任何與此類按鈕相關的內容。任何幫助將非常感激。

回答

0

你可以讓你繪製這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:color="@color/colorAccent" 
    tools:targetApi="lollipop"> <!-- ripple effect color --> 
    <item android:id="@android:id/background"> 
     <shape android:shape="oval"> 
      <stroke android:color="#ffffff" android:width="5dp" /> 
      <solid android:color="#3aeaee"/> 
      <size android:width="200dp" android:height="200dp"/> 
     </shape> 
    </item> 
</ripple> 

其中的android:內波動色彩效果的顏色。

+0

感謝您的幫助,但我嘗試過使用它,但它在圓形按鈕內部創建了一個連鎖效果;但我想要在按鈕之外創建漣漪。任何幫助? –

+0

如果將背景中的按鈕包裹在FrameLayout中作爲我給你的波紋並聽按鈕onclicklistener,那麼你可以觸發FrameLayout.performClick或類似的方法。 –