在AppCompat上更改fab按钮箭头颜色

时间:2017-04-11 19:00:55

标签: android android-appcompat appcompat-v7-r23

我想将fab按钮中的箭头颜色从黑色更改为白色,这就是它在主题编辑器中的显示效果:

enter image description here

这是$ sed -E -f file11 file2 1|2|3|4|5|europe|7|8|9|nice weather in EU today|11|12|europe|14|nice weather in EU today|16 1|2|3|4|5|europe|7|8|9|nice european weather today|11|12|europe|14|nice european weather today|16 1|2|3|4|5|europe|7|8|9|nice weather in CN today|11|12|china|14|nice weather in CN today|16 1|2|3|4|5|europe|7|8|9|nice weather in CN today|11|12|china|14|best of chinas today|16 1|2|3|4|5|europe|7|8|9|nice weather in AU today|11|12|australia|14|nice weather in AU today|16 中的代码:

styles.xml

由于其他答案,我已经设法更改App栏中的文字颜色,但我还没有找到改变其他部分的方法。

我正在使用<resources> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar" > <item name="colorAccent">@color/accent</item> <item name="colorForeground">@color/primary</item> <item name="colorPrimary">@color/primary</item> <item name="navigationBarColor">@color/white</item> <item name="statusBarColor">@color/primary_dark</item> <item name="colorPrimaryDark">@color/primary_dark</item> <item name="actionBarStyle">@style/MyActionBar</item> <item name="android:navigationBarColor">@color/primary</item> </style> <style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar.Solid"> <item name="titleTextStyle">@style/MyTitleTextStyle</item> </style> <style name="MyTitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> <item name="android:textColor">@color/white</item> </style> </resources>

2 个答案:

答案 0 :(得分:0)

您可以使用src参数:

为您的工厂指定任何颜色的图标

以下是我们项目的一个例子:

<android.support.design.widget.FloatingActionButton
        android:id="@+id/training_player"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        android:src="@drawable/play_fap"
        app:layout_anchor="@id/appbar"
        app:layout_anchorGravity="center_horizontal|bottom"
        />

或者您只需添加颜色色调即可更改现有图标的颜色:

android:tint="@color/white"  

答案 1 :(得分:0)

以下解决方案依赖于支持向量。 Read more here.

my_vector_drawable.xml

<vector
    android:tint="?colorControlNormal">
    ...
</vector>

您可以为支持向量drawable提供色彩。 ?colorControlNormal是由您的主题定义的属性。在浅色主题中它是半透明的黑色,在黑暗的主题中它是半透明或不透明的白色。

layout.xml

<FloatingActionButton
    style="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:srcCompat="@drawable/my_vector_drawable/>

这里发生了两件事:

  1. 使用app:srcCompat可以安全地设置所有API级别的支持向量。
  2. 在FAB上设置一个黑暗主题。这会使图标和涟漪效果变白。
  3. 主题解释:

    • 黑暗主题=浅色前景(文字,图标,高光),深色背景。
    • 浅色主题=深色前景,浅色背景。