2017-12-16 3 views
0

Was ich vorherKnopf Kräuselungeffekt Ausbreitung nur alpha Bild zu bedecken oder vermeiden Abdeckung transparente Flecken

  1. Add ripple effect to my button with button background color?
  2. Android ripple for button not working
  3. Ripples on a shape with a transparent background
  4. Transparent background in ImageButton with ripple effect?
  5. RippleDrawable - dev
gelesen

Was ich brauche, ist benutzerdefinierte Welligkeitseffekt Abdeckung nur Alpha-Kanal meines Bildes oder vermeiden, transparente Stellen zu überdecken.

Meine ursprüngliche Botton

  <Button 
       android:layout_width="96dp" 
       android:layout_height="96dp" 
       android:layout_gravity="center" 
       android:background="@drawable/btn_round" 
       android:foreground="@drawable/btn_ripple"/> 

Was ich versucht habe, aus mit Taste vorgeschlagen android:background="?attr/selectableItemBackgroundBorderless‌​" android:foreground="?attr/selectableItemBackgroundBorderless‌​". Es hat nicht ganz funktioniert. In der Tat ignoriert es Grenzen meiner Bild und Form in Welligkeit, während ich Welligkeit Spread Form auf Alpha-Kanal beschränken muss.

Wie Sie vielleicht schon kann ich 3 Möglichkeiten sehe ich die Umwandlung

  1. benutzerdefinierte Schaltfläche Form
  2. individuelle Welligkeit
  3. Trenn-Alpha-Kanal von vorgeschlagenen Optionen

So zu kombinieren versucht button in imageButton

  <ImageButton 
       android:layout_width="96dp" 
       android:layout_height="96dp" 
       android:layout_gravity="center" 
       android:background="@drawable/btn_round" 
       android:foreground="@drawable/btn_ripple" 
       android:scaleType="fitXY"/> 

Allerdings habe ich alle Kombinationen von src, background und foreground für alle 3 ausprobiert und war nicht erfolgreich. Auch versucht, android:background="?attr/selectableItemBackgroundBorderless‌​" android:foreground="?attr/selectableItemBackgroundBorderless‌​" zu Ripple hinzuzufügen. Das funktioniert auch nicht.

Referenz dieses Bild (das man nicht hat alpha, aber das ist nicht der Fall)

The problem

Antwort

0

Lösung war deutlich zu sehen:

in ripple.xml

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

ohne <shape> innerhalb