我想知道如何更改支持库22.2.0中的浮动操作按钮颜色? 我试过了
button.setBackgroundColor(color);
但很明显,这会改变按钮的drawable,然后变成正方形。
现在我想知道如何更改颜色而不仅仅是颜色,而不会触及形状?
提前致谢
答案 0 :(得分:34)
也许迟到但可以提供帮助。
fab.setBackgroundTintList(ColorStateList.valueOf(Color
.parseColor("#33691E")));
并从颜色列表You can find here
中解析实际颜色代码答案 1 :(得分:31)
创建ColorStateList
并将其设置为背景色调:
button.setBackgroundTintList(new ColorStateList(new int[][]{new int[]{0}}, new int[]{color}));
答案 2 :(得分:11)
你必须使用
attribute app:backgroundTint
答案 3 :(得分:10)
在colors.xml
(在这种情况下为R.color.purple
)中创建颜色资源并使用它,如下所示:
floatingActionButton.setBackgroundTintList(getResources().getColorStateList(R.color.purple));
答案 4 :(得分:9)
方法1:更改xml中的浮动操作栏(fab)颜色:
要更改浮动操作栏(fab)颜色,请按照此步骤进行操作
在xml的浮动操作栏(fab)中添加“app:backgroundTint =”#colorcode“”。例如
app:backgroundTint="#8393ca"
<#>在#8393ca的地方添加您想要的任何颜色代码
示例为usaage ..
<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:layout_margin="@dimen/fab_margin"
app:backgroundTint="#8393ca"
android:src="@drawable/send" />
方法2:以编程方式更改浮动操作栏颜色
只需在代码上添加此行
即可首先在您的values =&gt;颜色中创建一个红色,然后在创建活动中添加此代码
fab.setBackgroundTintList(getResources().getColorStateList(R.color.red));
or
fab.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor("#33691E")));
信用:http://androidrace.com/2016/12/12/how-to-change-fabfloating-action-bar-color-android/
答案 5 :(得分:7)
要向后兼容:
DrawableCompat.setTintList(DrawableCompat.wrap(fab.getDrawable()), tintColor); // <- icon
DrawableCompat.setTintList(DrawableCompat.wrap(fab.getBackground()), backgroundTintColor); // <- background
答案 6 :(得分:6)
在此处查看已接受的答案:Android changing Floating Action Button color
如果您想更改颜色
- 在XML中,属性为 app:backgroundTint
- 在 .setBackgroundTintList
的代码中
答案 7 :(得分:1)
属性名称为backgroundTint
所以我认为这是一个名为
的函数 button.setBackgroundTint(color)
答案 8 :(得分:1)
如果您使用https://github.com/Clans/FloatingActionButton中的浮动操作按钮库,请使用此
fab.setColorNormal(getResources().getColor(R.color.fab_color1));
答案 9 :(得分:1)
试试这段代码。它会为背景资源添加色调。
button.setBackgroundTintList(getResources().getColorStateList(R.color.yourColor));
答案 10 :(得分:0)
只需在浮动操作按钮
下的xml文件中使用此行android:backgroundTint="#96989A"
答案 11 :(得分:0)
XML background:tint颜色将始终覆盖您提供的任何颜色
以编程方式因此,要以编程方式提供颜色,请从XML文件中删除android:backgroundTint="#96989A"
行,并使用:
button.setBackgroundTintList(getResources().getColorStateList(R.color.yourColor));
答案 12 :(得分:0)
有时您将颜色保存在颜色文件中,并且想要使用该颜色。
此代码下方的内容
fab.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor(getString(R.color.youcolor))));
您知道要以编程方式进行更改,因此需要使用setBackgroundTintList()
,然后传递所需的ColorStateList.valueOf()
,然后将其转换为certein int并对其进行解析...
注意:如果您只是立即设置int颜色,有时可能会给您带来获取所需颜色的问题,因此,我不使用它,也不建议您那样使用它
然后将其放入ColorStateList.valueOf()
,Color.parseColor()
中,这是您需要放入的...
这需要一个字符串,但您在颜色文件中具有int颜色,那么该怎么办?
在Color.parseColor()
传递getString()
内,这是每个活动都具有的一种方法,因此在getString()
内,您将最终的颜色设置为{{1 }