android - precio - ¿Cuál debería ser el color de Ripple, colorPrimary o colorAccent?(Diseño de materiales)
ripple criptomoneda precio (5)
He leído las Pautas de diseño de materiales, pero no sé cuál debería ser el color de la Ondulación si no es negro (con alfa).
Por ejemplo, tengo una aplicación con colorPrimary = blue y colorAccent = red. En realidad, estoy usando colorAccent (con alfa), debo usar colorPrimary (con alfa) si quiero un color diferente al negro en la onda?
Revisé todas las aplicaciones de Google pero nunca usan ondas con el color.
Una imagen como la que tengo ahora:
Como referencia, estos son los colores definidos en AppCompat.
<color name="ripple_material_dark">#33ffffff</color> <color name="ripple_material_light">#1f000000</color>`
El estilo Widget.Material.Button usa el btn_default_material.xml como fondo:
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?attr/colorControlHighlight">
<item android:drawable="@drawable/btn_default_mtrl_shape" />
</ripple>
Tenga en cuenta que el color de ondulación es ?attr/colorControlHighlight
que de forma predeterminada es # 40ffffff o # 40000000 (para temas oscuros y claros, respectivamente) como se menciona en la guía de respuesta táctil .
Como habrás notado, las ondulaciones se utilizan indicaciones sutiles de retroalimentación táctil, por lo tanto, por qué no usan colorPrimary
o colorAccent
por defecto. Esto es coherente con los cambios realizados en Android 4.4 (Kitkat) que hicieron que los colores predeterminados del selector sean neutrales por defecto.
Esta es la respuesta que Roman Nurik me dio en Twitter a esta pregunta:
Roman Nurik
@romannurik@dahnark @romainguy varía según la situación, pero rara vez desea utilizar el color de acento. Yo diría que en general neutral o primaria
Esto es lo que estás buscando:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
<item name="colorControlHighlight">@color/ripple_material_dark</item>
...
</style>
Usa un 26% de alfa para las ondas de color.
Android L no admite atributos de tema en las listas de estado de color y el elemento <ripple>
no tiene un canal alfa, pero para las ondas limitadas puede hacer algo como:
<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>
Esto no funcionará para una onda sin límites. Alternativamente, dado que conoce su propio color de acento, puede definir una versión alfa al 26% o utilizar una lista de estado de color. Cualquiera de estos funcionará bien para una onda sin límites.
<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>