FloatingActionButton动态更换背景色
程序员文章站
2022-10-25 17:24:39
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/186 FloatingActionButton 动态更换背景色 最近碰到了个需求场景,需要动态切换FloatingActionButton的背景色 先看下xm ......
版权声明:本文为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);
下一篇: 好吃的关东煮怎么做,你都知道吗?
推荐阅读
-
VS 2012变量自动连接时的背景色怎么更换?
-
jquery动态更换设置背景图的方法
-
Element Table的row-class-name无效与动态高亮显示选中行背景色
-
iOS动态更换Icon的全过程记录
-
空闲时间研究一个小功能:winform桌面程序如何实现动态更换桌面图标
-
FloatingActionButton动态更换背景色
-
VSCode默认主题怎么更换? VSCode更换背景色的教程
-
超简单的scrapy实现ip动态代理与更换ip的方法实现
-
[ExtJS5学习笔记]第二十九节 sencha ext js 5.1.0中动态更换皮肤主题
-
devc++怎么修改背景色? devc++更换背景色的技巧