it-swarm.com.de

Welche Farbe sollte die Ripple, colorPrimary oder colorAccent haben? (Material Design)

Ich lese Material Design Guidelines , aber ich weiß nicht, welche Farbe die Welligkeit haben soll, wenn sie nicht schwarz ist (mit Alpha).

Zum Beispiel habe ich eine App mit colorPrimary = blue und colorAccent = red. Eigentlich verwende ich colorAccent (mit Alpha), sollte ich colorPrimary (mit Alpha) verwenden, wenn ich eine andere Farbe als Schwarz für die Welligkeit haben möchte?

Ich habe alle Apps von Google überprüft, aber sie verwenden niemals Wellen mit Farbe.

Ein Bild wie ich es jetzt habe:

ripple

43

Verwenden Sie 26% Alpha für farbige Wellen.

Android L unterstützt keine Themenattribute in Farbstatuslisten und im <ripple> -Element hat keinen Alphakanal, aber für begrenzte Wellen können Sie Folgendes tun:

<ripple xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:color="?android:attr/colorAccent">
    <item Android:id="@Android:id/mask">
        <color Android:color="#42ffffff" />
    </item>
</ripple>

Dies funktioniert nicht für eine unbegrenzte Welligkeit. Alternativ können Sie, da Sie Ihre eigene Akzentfarbe kennen, entweder eine 26% -Alpha-Version definieren oder eine Farbstatusliste verwenden. Beides funktioniert gut für eine unbegrenzte Welligkeit.

<ripple xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:color="@color/accent_26" />

res/values ​​/ colors.xml:

<resources>
    ...
    <color name="accent">#ff33b5e5</color>
    <color name="accent_alpha26">#4233b5e5</color>
</resources>

res/color/accent_alpha26.xml:

<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item Android:color="@color/accent"
          Android:alpha="0.26" />
</selector>
52
alanv

Hier ist was Sie suchen:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
   ...
   <item name="colorControlHighlight">@color/ripple_material_dark</item>
   ...
</style>
37
i.shadrin

Der Stil Widget.Material.Button verwendet als Hintergrund btn_default_material.xml :

<ripple xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:color="?attr/colorControlHighlight">
  <item Android:drawable="@drawable/btn_default_mtrl_shape" />
</ripple>

Beachten Sie, dass die Ripple-Farbe ?attr/colorControlHighlight Ist, was standardmäßig# 40ffffff oder # 40000000 (für dunkle bzw. helle Themen) wie erwähnt ist im touch feedback guide .

Wie Sie bemerkt haben, werden Ripples als subtile Anzeichen für Berührungsfeedbacks verwendet, weshalb sie standardmäßig nicht colorPrimary oder colorAccent verwenden. Dies steht im Einklang mit den in Android 4.4 (KitKat) vorgenommenen Änderungen, durch die die Standardauswahlfarben standardmäßig neutral gemacht wurden.

29
ianhanniballake

Dies ist die Antwort, die Roman Nurik mir auf Twitter auf diese Frage gibt:

Roman Nurik
@ romannurik

@dahnark @romainguy es variiert je nach Situation, aber selten möchten Sie die Akzentfarbe verwenden. Ich würde allgemein neutral oder primär sagen

ripple color

13

Als Referenz sind dies die in AppCompat definierten Farben.

<color name="ripple_material_dark">#33ffffff</color>
<color name="ripple_material_light">#1f000000</color>`
4