当前位置: 移动技术网 > IT编程>移动开发>Android > FloatingActionButton动态更换背景色

FloatingActionButton动态更换背景色

2019年08月12日  | 移动技术网IT编程  | 我要评论

韩讯5,千千音乐,新婚姻法内容

版权声明:本文为xing_star原创文章,转载请注明出处!

本文同步自

floatingactionbutton 动态更换背景色

最近碰到了个需求场景,需要动态切换floatingactionbutton的背景色
先看下xml中的布局
<android.support.design.widget.floatingactionbutton
android:id=”@+id/fab_main_circle”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:src=”@drawable/ic_photo_album_white_48dp”
app:fabsize=”normal”
app:backgroundtint=”@color/colorprimarydark”/>
floatingactionbutton的图片源是ic_photo_album_white_48dp ,这是一张纯色的图片,图片没有背景色,需要通过app:backgroundtint设置背景色。
 
当我们的需求出现动态更改背景色时,就会碰到问题.
colorstatelist colorstatelist = contextcompat.getcolorstatelist(getapplicationcontext(), r.color.red);
fabdownloadcircle.setbackgroundtintlist(colorstatelist);
多次执行这段设置背景色的代码,会出现更改不了背景色,背景色始终保持在某一特定的色值。很是奇怪。
google了一番,也没有找到合适的答案。
最终到floatingactionbutton的源码里面,找到了一个api,setbackgroundtintmode。问题得到解决。
 
完整的代码如下:
colorstatelist colorstatelist = contextcompat.getcolorstatelist(getapplicationcontext(), r.color.colorprimarydark);
fabrandomcircle.setbackgroundtintmode(porterduff.mode.src_atop);
fabrandomcircle.setbackgroundtintlist(colorstatelist);
colorstatelist colorstatelist = contextcompat.getcolorstatelist(getapplicationcontext(), r.color.red;
fabrandomcircle.setbackgroundtintmode(porterduff.mode.src_atop);
fabrandomcircle.setbackgroundtintlist(colorstatelist);
 
 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网