2016-11-13 1 views
0

ich eine benutzerdefinierte Kreis Schaltfläche erstellt haben die folgenden:Android Benutzerdefinierte Schaltfläche Ripple/Puls Effekt

<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" /> 

Hier button_bg_round wird wie folgt definiert:

<?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> 

Nun, ich möchte einen Kreis hinzufügen Ripple/Pulseffekt/Animation beim Klicken auf die Schaltfläche. Ich habe versucht, auf google und SO nach einer möglichen Lösung zu suchen, konnte aber keine solche Schaltfläche finden. Jede Hilfe würde sehr geschätzt werden.

Antwort

0

Sie können Sie so machen drawable:

<?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> 

wo android: Farbe im Inneren Welligkeit ist die Farbe des Effekts.

+0

Danke für die Hilfe, aber ich habe versucht, dies zu verwenden, aber es erzeugt einen Welleneffekt in der kreisförmigen Taste; aber ich wollte, dass die Welligkeit außerhalb des Buttons erzeugt wird. Irgendeine Hilfe? –

+0

Wenn Sie die Schaltfläche innerhalb eines FrameLayout mit dem Hintergrund als die Ripple, die ich Ihnen gab, und hören Sie die Schaltfläche onclicklistener, dann können Sie das FrameLayout.performClick oder eine ähnliche Methode auslösen. –

Verwandte Themen