studio icon create color change android floating-action-button setbackground

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