当前位置: 首页 > 知识库问答 >
问题:

Android改变浮动动作按钮颜色

百里京
2023-03-14

我一直试图改变材质的浮动动作按钮颜色,但没有成功。

<android.support.design.widget.FloatingActionButton
    android:id="@+id/profile_edit_fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="end|bottom"
    android:layout_margin="16dp"
    android:clickable="true"
    android:src="@drawable/ic_mode_edit_white_24dp" />

我曾试图补充:

android:background="@color/mycolor"

或通过代码:

FloatingActionButton fab = (FloatingActionButton) rootView.findViewById(R.id.profile_edit_fab);
fab.setBackgroundColor(Color.parseColor("#mycolor"));

fab.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#mycolor")));

但上述方法都不奏效。我也试过提出的重复问题中的解决方案,但都行不通;按钮保持绿色,也变成了正方形。

附注。如果知道如何添加涟漪效果也会很好,也不能理解。

共有2个答案

郎俊雅
2023-03-14

Vijet Badigannavar的答案是正确的,但是使用colorstateList通常很复杂,他没有告诉我们怎么做。由于我们经常关注在正常和按下状态下更改视图的颜色,所以我要添加更多细节:

>

  • 如果您想在正常状态下更改fab的颜色,您可以只写

    mFab.setBackgroundTintList(ColorStateList.valueOf(your color in int));
    

    如果您想在按下状态下更改fab的颜色,感谢设计支持库22.2.1,您只需编写

    mFab.setRippleColor(your color in int);
    

    通过设置此属性,当您长按fab时,在您的触摸点处会出现与您的颜色一致的波纹,并显示在fab的整个表面。请注意,在正常状态下,它不会改变fab的颜色。在API 21(棒棒糖)下面,没有波纹效应,但是fab的颜色仍然会在按下时改变。

    最后,如果您想为状态实现更复杂的效果,那么您应该深入研究ColorStateList,这里有一个讨论它的问题:我如何以编程方式创建ColorStateList?。

    更新:谢谢@kaitlyn的评论。要删除使用backgroundTint作为颜色的FAB笔画,可以在XML中设置app:borderwidth=“0dp”

  • 子车煌
    2023-03-14

    如文档中所述,默认情况下,它采用styles.xml属性colorAccent中设置的颜色。

    此视图的背景颜色默认为主题的ColorAccent。如果您希望在运行时更改这一点,那么您可以通过setBackgroundTintList(ColorStateList)进行更改。

    如果您希望更改颜色

    • 在具有属性app:backgroundtint的XML中
    <android.support.design.widget.FloatingActionButton
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_add"
        app:backgroundTint="@color/orange"
        app:borderWidth="0dp"
        app:elevation="6dp"
        app:fabSize="normal" >
    
    • 带有.SetBackgroundTintList的代码(下面由ywwynm回答)

    正如@dantalian在评论中提到的,如果您希望更改v22(含)之前的设计支持库的图标颜色,您可以使用

    android:tint="@color/white"     
    

    对于v23以来的设计支持库,您可以使用:

    app:tint="@color/white"   
    

    对于AndroidX库,您还需要在xml布局中设置0DP边框:

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_add"
        app:backgroundTint="@color/orange"
        app:borderWidth="0dp"
        app:elevation="6dp"
        app:fabSize="normal" />
    
     类似资料:
    • 这不起作用。如何改变浮动动作按钮的背景颜色

    • 问题内容: 我一直在尝试更改Material的“浮动动作按钮”的颜色,但没有成功。 我尝试添加: 或通过代码: 要么 但以上方法均无效。我也尝试过提出的重复问题中的解决方案,但是没有一个起作用。按钮保持绿色,并且也变成了正方形。 PS知道如何添加波纹效果也很高兴,也无法理解。 问题答案: 如文档中所述,默认情况下,它采用在styles.xml属性colorAccent中设置的颜色。 该视图的背景色

    • 在我们的android应用程序中,我们需要创建一个浮动操作按钮,它不是默认的圆形,而是一个带有三个圆角的正方形。fab如下图所示: 我设法创建了这样一个表单,但不知道如何将其应用于我的fab,或者是否可能。形状的xml文件如下所示: 我试图改变表格 但这只会更改我的按钮内的图标。我想我需要扩展FloatingActionButton,但我不知道如何扩展。 有办法改变晶圆厂的形状吗?如果有人已经做到

    • 我 https://github.com/futuresimple/android-floating-action-button 使用了这个库。如何更改主按钮的图像?我想在选择其中一个较小的按钮后立即更改按钮图像。

    • 我对改变晶圆厂的背景色有一个问题,似乎晶圆厂后面有另一个背景 这是我的代码 现在唯一有效的解决方案是改变我的应用程序上的颜色口音,但它会影响其他UI元素

    • 我想在我的应用程序中应用不同的主题。我想更改导航栏和浮动操作按钮的颜色。 现在我可以更改导航栏的颜色,但浮动操作按钮的颜色没有变化。当主题更改时,如何动态更改工厂的颜色? 风格: 绝妙的: 晶圆厂选择器: 谢谢你...