2015-02-03 4 views
23

Etwas wie das Folgende, aber es funktioniert nicht. Wenn ich die Zeichnungsfarbe auf etwas wie Blau umstelle, funktioniert es.Android: Können Sie einen Welleneffekt haben, dessen Standardzustandsfarbe transparent ist?

<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    android:color="?android:colorControlHighlight"> 
    <item android:drawable="@android:color/transparent"/> 
</ripple> 
+0

Was meinst du mit funktioniert nicht? – iheanyi

+0

keine Welligkeit mehr, wenn die Zeichnungsfarbe transparent ist – ZakTaccardi

+0

Wenn das Zeichen transparent ist, gibt es keine Farbe, mit der es zu Welligkeit kommt. – iheanyi

Antwort

81

Es ist notwendig, eine Maske hinzuzufügen:

<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    android:color="?android:colorControlHighlight"> 
    <item android:id="@android:id/mask"> 
     <color android:color="@android:color/white" /> 
    </item> 
</ripple> 
+4

Dies sollte die akzeptierte antwort sein.Dies ist es !! Danke! – Sotti

+1

Works sobald ich bemerkte, dass die Maske Farbe war weiß (was sinnvoll ist, sobald Sie darüber nachdenken). –

+3

kann es jede Farbe sein, oder alle Zeichen, aber nicht transparent – ataulm

2

Irgendwie die @JMPergar ‚s Antwort für mich nicht funktioniert hat.

Allerdings konnte ich mir diese Problemumgehung vorstellen: Wenn eine Farbe hinter Ihrer transparenten Schaltfläche fest ist (kein Farbverlauf oder ein gesprenkeltes Bild), können Sie diese Farbe als eine nicht gedrückte Hauptschaltfläche verwenden.

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

    <item> 
     <shape> 
      <corners android:radius="@dimen/profile_transparent_button_corner_radius" /> 
      <solid android:color="@color/profile_background" /> 
     </shape> 
    </item> 
</ripple> 

wo @color/profile_transparent_button_pressed ist eine Farbe, eine Taste zu markieren, und @color/profile_background - die Farbe eines Layouts hinter dieser Taste. Es funktioniert genau wie erwartet, ist aber definitiv ein Workaround, also versuchen Sie zuerst @JMPergars Antwort.

Verwandte Themen