2016-09-28 39 views
5

mojego kodu xml:Jak ustawić przycisk tła odkształcalne obraz z odzew w android

<Button 
    android:id="@+id/link_btn" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/google_btn" /> 

jestem stosowania Domyślny efekt fali

<Button 
    android:id="@+id/link_btn" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="?android:attr/selectableItemBackground" /> 

ale muszę przycisk tła "@drawable/google_btn" z
"?android:attr/selectableItemBackground". to znaczy, że potrzebuję efektu marszczenia z niestandardowym tłem.

+0

w jaki sposób można to zrobić jednym –

+0

warto podkreślić, że (jak @zahidul wspomniano), efekty są marszczyć dla Androida V21 i nowszych. – user1506104

Odpowiedz

5

W swoim folderze drawable-v21 możesz samodzielnie napisać kod efektu tętnienia. Utwórz plik XML z możliwością rysowania i ustaw początkową etykietę na ripple. Tak:

<?xml version="1.0" encoding="utf-8"?> 
<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@color/colorAccentDark"> 
    <item> 
     <selector xmlns:android="http://schemas.android.com/apk/res/android" > 
      <item 
       android:drawable="@color/button_accent_dark" 
       android:state_checked="false"/> 
      <item 
       android:drawable="@color/button_accent" 
       android:state_checked="true" /> 
      <item 
       android:drawable="@color/button_accent_dark" /> 

     </selector> 
    </item> 
</ripple> 
+0

Dziękuję @Zahidul Islam ... To działa i jeszcze jedna Wątpliwość, jak mogę zastosować efekty ripple poniżej V21 –

5
<?xml version="1.0" encoding="utf-8"?> 
<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    android:color="?android:colorControlHighlight" > 

    <item 
     android:id="@android:id/mask" 
     android:drawable="@drawable/btn_rectangle"/> 
    <item android:drawable="@drawable/btn_rect_states"/> 

</ripple> 

Wypróbuj powyższy kod w tym miejscu, aby uzyskać własne tła do rysowania, które są potrzebne.

+0

tak działa –

+1

To jest świetne poniżej marszu v21, więc nie musisz tworzyć pliku selektora stanów przycisków dla normalnego i wciśniętego stanu @PrithivDharmaraj .. Przyjmij proszę lub prześlij wiadomość, jeśli moja odpowiedź pomoże Ci .. –

2

Kiedy przycisk ma tło z rozciągliwej, możemy dodać efekt fali z parametrem planie .. Sprawdź poniżej kod jego pracy dla mojego przycisku z innym tle

<Button 
android:layout_width="wrap_content" 
android:layout_height="40dp" 
android:gravity="center" 
android:layout_centerHorizontal="true"                
android:background="@drawable/shape_login_button" 
android:foreground="?attr/selectableItemBackgroundBorderless" 
android:clickable="true" 
android:text="@string/action_button_login" 
/> 

Dodaj poniżej parametru za odzew

android:foreground="?attr/selectableItemBackgroundBorderless" 
android:clickable="true"