icon - Android setBackgroundTintList en dispositivos pre-lollipop
floating action button image size (4)
Como dijo Kamil Seweryn en los comentarios, puedo confirmar que fab.setBackgroundTintList()
funciona en la instancia de android.support.design.widget.FloatingActionButton
.
He probado en Samsung Galaxy s5 (Android 6) y Samsung Galaxy s3 (Android 4.3). Ambos funcionan correctamente.
Estoy trabajando con FloatingActionButton
. El usuario debe poder cambiar el color de fondo FAB dentro de un evento onClick
.
Sin embargo, la llamada recomendada para setBackgroundTintList
parece ser solo compatible desde 21+ API.
¿Cómo, correctamente, lo hago en dispositivos pre-lollipop? ¿Hay alguna alternativa que pueda usar?
Gracias por adelantado.
Desde XML, puede utilizar
card_view:backgroundTint="@color/your_color"
donde card_view
es xmlns:card_view="http://schemas.android.com/apk/res-auto"
Puedes usar también setSupportBackgroundTintList
Aplica un tinte al fondo dibujable. No modifica el modo de tinte actual, que es SRC_IN de forma predeterminada.
Las llamadas subsiguientes a View.setBackground (Drawable) mutarán automáticamente el dibujo y aplicarán el modo de tinte y tinte especificado.
También eche un vistazo en ViewCompat.setBackgroundTintList()
Aplica un tinte al fondo dibujable.
Esto siempre tendrá efecto cuando se ejecute en API v21 o más reciente. Cuando se ejecuta en plataformas anteriores a API v21, solo tendrá efecto si view implementa la interfaz TintableBackgroundView.
Encontré una solución aquí en SO que he usado antes y es esta:
public static void setButtonTint(Button button, ColorStateList tint) {
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP && button instanceof AppCompatButton) {
((AppCompatButton) button).setSupportBackgroundTintList(tint);
} else {
ViewCompat.setBackgroundTintList(button, tint);
}
}
Funciona para mí, espero que funcione para ti también.
sencillo:
fab.setBackgroundTintList(ColorStateList.valueOf(0xFF4CAF50));
fab
es su FloatingActionButton
por supuesto y 0xFF4CAF50
solo un ejemplo de color