Gunnar Asked: 2020-03-26 04:59:43 +0800 CST 2020-03-26 04:59:43 +0800 CST 2020-03-26 04:59:43 +0800 CST 使用动画更改浮动操作按钮的颜色 772 我想知道如何用动画改变浮动动作按钮的颜色,我试过了,ObjectAnimator但它没有改变。 也就是说,点击后我改变了按钮的颜色,这是我的代码: floatingActionButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ObjectAnimator.ofArgb(floatingActionButton, "Color").start(); } }); android 2 Answers Voted Best Answer Jorgesys 2020-03-26T07:40:30+08:002020-03-26T07:40:30+08:00 以编程方式,它将通过ColorStateList和setBackgroundTintList()方法: floatingActionButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ColorStateList csl = new ColorStateList(new int[][]{new int[0]}, new int[]{0xff00ff00}); floatingActionButton.setBackgroundTintList(csl); } }); 定义Alpha以使您的颜色发生变化非常重要! 您还可以从以下位置上传您的颜色colors.xml: <color name="mi_color_verde">#FF00FF00</color> 所以你会像这样改变颜色: int miColor = getResources().getColor(R.color.mi_color_verde); ColorStateList csl = new ColorStateList(new int[][]{new int[0]}, new int[]{miColor}); floatingActionButton.setBackgroundTintList(csl); 通过属性也有两种方法,app:backgroundTint或者只是通过以下方式用另一种颜色定义按钮图像android:src: <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/blue" app:elevation="2dp" app:borderWidth="1dp"> 您甚至可以定义自己的图像并使用 更改颜色app:backgroundTint,但请确保您的图像具有适当的透明度。 x4mp73r 2020-03-26T07:46:15+08:002020-03-26T07:46:15+08:00 如果您想通过代码执行此操作,可以将其放在按钮事件中(示例): tuBotón.setBackgroundTintList(ColorStateList.valueOf(getResources().getColor(R.color.white)));
以编程方式,它将通过ColorStateList和setBackgroundTintList()方法:
定义Alpha以使您的颜色发生变化非常重要!
您还可以从以下位置上传您的颜色
colors.xml
:所以你会像这样改变颜色:
通过属性也有两种方法,
app:backgroundTint
或者只是通过以下方式用另一种颜色定义按钮图像android:src
:您甚至可以定义自己的图像并使用 更改颜色
app:backgroundTint
,但请确保您的图像具有适当的透明度。如果您想通过代码执行此操作,可以将其放在按钮事件中(示例):