Ensemble FAB couleur de l'icône
actuel FAB
Je voudrais savoir comment changer la couleur de l'icône de la FAB (Flottant Bouton d'Action) widget fourni par le com.android.support:design:22.2.0 de la bibliothèque du vert au blanc.
style.xml
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/color_primary</item>
<item name="colorPrimaryDark">@color/color_primary_dark</item>
<item name="colorAccent">@color/accent</item>
</style>
<color name="color_primary">#00B33C</color>
<color name="color_primary_dark">#006622</color>
<color name="accent">#FFB366</color>
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<include android:id="@+id/toolbar" layout="@layout/toolbar" />
<TextView android:id="@+id/text"
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:paddingTop="16dp"
android:textSize="20sp" />
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:paddingTop="8dp"
android:paddingBottom="16dp" />
</LinearLayout>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:src="@android:drawable/ic_input_add"
android:layout_margin="24dp"
app:elevation="6dp"
app:pressedTranslationZ="12dp"
app:borderWidth="0dp" />
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le modifier par programmation à l'aide ColorFilter.
PorterDuff.Mode.SRC_ATOP
et à l'aide deDrawable myFabSrc = ResourcesCompat.getDrawable(getResources(), android.R.drawable.ic_input_add, getTheme());
L'aide d'android:la teinte de la propriété, vous pouvez définir la couleur comme ce
android:tint
semble être uniquement pris en charge dans l'API de niveau 21 et ci-dessus: developer.android.com/training/material/drawables.htmlSi vous utilisez
Material Components
Si vous voulez utiliser l'icône par défaut de la couleur, changer
app:tint="@null"
app:backgroundTint=""
pour la couleur d'arrière-plan etapp:tint=""
pour la teinte de l'image.android:tint
mais plutôtapp:tint
.Il est plus facile que de se la un drawable, vous avez seulement besoin d'accès à la couleur filtre de la couleur que vous souhaitez.
yourFab.setColorFilter(getResources().getColor(R.color.red));
android.support.design.widget.FloatingActionButton
Utiliser la version blanche de ic_add de google de conception de site.
android:tint
ressemble à une solution propre, mais elle n'est pas prise en charge en dessous de l'API de niveau 21À l'aide d'un bitmap ajoute la réduction de la complexité de votre application que d'essayer de changer la couleur d'une icône de la programmation. Moins de complexité des moyens de moins en moins de choses à tester 🙂
android:tint
travaille pour leandroid.support.design.widget.FloatingActionButton
défini dans la bibliothèque de prise en charge même sur la réduction des API des appareils de niveau, je viens de le tester sur un JellyBean de l'image (API 16).Depuis
FloatingActionButton
s'étendImageView
nous pouvons utiliserImageViewCompat
à la teinte de l'icône: