web-dev-qa-db-ja.com

FloatingActionButtonアイコンが黒いのはなぜですか?

以下は私が使用しているコードです。私はandroidxを使用しています。すべてのFABには、たとえ白い色があっても、黒いアイコンが付いています。

mylayout.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:app="http://schemas.Android.com/apk/res-auto"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:layout_gravity="center"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

    <include layout="@layout/content_geral" />

    <com.google.Android.material.floatingactionbutton.FloatingActionButton
        Android:id="@+id/fab"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_gravity="bottom|end"
        Android:layout_margin="24dp"
        app:backgroundTint="@color/colorPrimary"
        app:srcCompat="@drawable/ic_cloud_upload"
        tools:ignore="VectorDrawableCompat" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

style.xml

 <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
    </style>

enter image description here

16

AndroidXを使用している場合、アイコンの色を変更するにはapp:tint とは対照的に Android:tint

<com.google.Android.material.floatingactionbutton.FloatingActionButton
    style="@style/Widget.MaterialComponents.FloatingActionButton"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_marginEnd="16dp"
    Android:layout_marginBottom="16dp"
    app:backgroundTint="@color/colorPrimary"
    app:tint="@color/white"
    app:srcCompat="@drawable/ic_add"
/>
32
David Jarvis

複数の色(添付ファイル)のアイコン(ベクトル)がありますが、アイコンの色のためにapp:tint = "@ color/white"を使用できません白などの単色に変わり、これは必要ありませんでした。

したがって、app:tintをnullに設定する問題を修正しました。

  app:tint="@null"

私のアイコン(SVG):

enter image description here

12

AndroidXのFloatingActionButtonクラスは、colorOnSecondaryテーマ属性を使用してアイコンに色を付けます。

https://github.com/material-components/material-components-Android/blob/master/lib/Java/com/google/Android/material/floatingactionbutton/res/values/styles.xml#L39

MaterialComponentsテーマ定義に従ってベース定義に進むと、colorOnSecondaryのデフォルト値はdesign_default_color_on_secondary...およびthat#000000

https://github.com/material-components/material-components-Android/blob/master/lib/Java/com/google/Android/material/color/res/values/colors.xml#L26

これを修正するには、app:tint属性をFloatingActionButtonに直接、または@color/colorOnSecondary好きなものをテーマに追加します。

3
Ben P.

「Android:backgroundTint」を使用している場合、このプロパティはFABの背景色を設定しますが、FABアイコンの色を変更するには、「Android:tint」プロパティを次のように使用します。

<Android.support.design.widget.FloatingActionButton
Android:id="@+id/fab"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="bottom|end"
Android:tint="@Android:color/white"
Android:src="@Android:drawable/ic_input_add"

/>

0
Sandeep Insan

描画可能なフォルダーでをクリックします

ic_cloud_upload

そしてfillColorを

Android:fillColor="#FFFFFF" // #FFFFFF is for white color

これにより、黒いアイコンが白に変わります。

0
Lekr0

背景アイコンの色ではなくFABの色を変更しています。 icon colorを変更するには、次を使用します。

Android:tint

[〜#〜] update [〜#〜]

プログラムで色を変更することもできます。

Drawable myFabSrc = getResources().getDrawable(Android.R.drawable.ic_input_add);
Drawable willBeWhite = myFabSrc.getConstantState().newDrawable();
willBeWhite.mutate().setColorFilter(Color.WHITE, PorterDuff.Mode.MULTIPLY);
myFabName.setImageDrawable(willBeWhite);