Android 改变悬浮操作按钮的颜色

9 浏览
0 Comments

Android 改变悬浮操作按钮的颜色

我一直在试图更改Material的浮动操作按钮颜色,但没有成功。


我尝试添加:

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")));

但以上任何一种都没有起作用。我还尝试了建议的重复问题中的解决方案,但它们都不起作用;按钮仍然是绿色的,并且变成了一个正方形。

P.S. 如果知道如何添加涟漪效果,那也很好,我也不是很清楚。

admin 更改状态以发布 2023年5月23日
0
0 Comments

Vijet Badigannavar的答案是正确的,但使用ColorStateList通常会很复杂,而且他没有告诉我们如何做。由于我们经常关注更改View在正常状态和按下状态下的颜色,因此我将添加更多细节:

  1. 如果您想更改FAB在正常状态下的颜色,只需编写
  2. mFab.setBackgroundTintList(ColorStateList.valueOf(your color in int));
    

  3. 如果您想更改FAB在按下状态下的颜色,则有了Design Support库22.2.1,您只需编写
  4. mFab.setRippleColor(your color in int);
    

    通过设置此属性,当您长按FAB时,将在触摸点处出现具有您的颜色的涟漪,并揭示整个FAB的表面。请注意,这不会更改FAB在正常状态下的颜色。 在API 21(Lollipop)以下版本中,没有涟漪效果,但是在按下FAB时,FAB的颜色仍将发生变化。

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

更新:感谢@ Kaitlyn的评论。如果要使用backgroundTint作为其颜色来删除FAB的描边,则可以在xml中设置app:borderWidth =“0dp”。

0
0 Comments

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

此视图的背景色默认为主题的colorAccent。如果您希望在运行时更改该颜色,则可以通过setBackgroundTintList(ColorStateList)进行更改。

如果您希望更改颜色

  • 可通过XML中的app:backgroundTint属性进行更改


  • 可以通过.setBackgroundTintList代码进行更改(由ywwynm提供的答案)

正如评论中@Dantalian所提到的,如果您希望更改Design Support Library 版本号不超过v22的图标颜色,则可以使用

android:tint="@color/white"     

如果您使用Design Support Library 自v23以后,则可以使用:

app:tint="@color/white"   

同时,如果您使用的是androidX库,则需要在XML布局中设置0dp边框:


0