自定义Android浮动操作按钮图片周围出现红圈问题
嘿,我来帮你搞定这个FAB红圈的问题!这种情况我遇到过好多次,大概率是FAB的默认着色或主题配置导致的,咱们一步步来解决:
方案1:移除图标的默认着色(tint)
FAB默认会给android:src设置的图标应用主题的colorAccent着色,如果你的自定义图片本身已经是正确的颜色(不需要被染色),直接禁用这个着色就行:
<android.support.design.widget.FloatingActionButton android:id="@+id/addplant" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end|bottom" android:layout_margin="@dimen/fab_margin" android:src="@mipmap/add_plant" app:tint="@null" /> <!-- 添加这一行禁用默认着色 -->
注意要确保布局文件头部已经引入app命名空间:xmlns:app="http://schemas.android.com/apk/res-auto"
方案2:自定义FAB的背景颜色
如果红圈是FAB的圆形背景本身,你可以通过app:backgroundTint指定想要的背景色,比如设置为透明或者和图标匹配的颜色:
<android.support.design.widget.FloatingActionButton android:id="@+id/addplant" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end|bottom" android:layout_margin="@dimen/fab_margin" android:src="@mipmap/add_plant" app:backgroundTint="@android:color/transparent" /> <!-- 设置背景透明 -->
也可以替换成你需要的纯色:app:backgroundTint="@color/your_desired_color"
方案3:检查图片资源的透明度
如果你的自定义图片不是透明背景(比如边缘有白色或其他底色),FAB的背景色会透过非透明区域边缘显现出来。用图片编辑工具(比如Photoshop、GIMP)把图片背景改成完全透明,确保图标边缘没有多余底色,红圈自然就消失了。
方案4:修改主题的colorAccent
如果整个应用都不想用红色作为强调色,可以在styles.xml里修改主题的colorAccent:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- 其他主题配置 --> <item name="colorAccent">@color/your_preferred_color</item> </style>
这样所有依赖colorAccent的控件(包括FAB)都会使用你设置的颜色,不会再出现红色圈了。
优先试试方案1,这是最常见的解决方法,一般就能搞定问题啦!
内容的提问来源于stack exchange,提问作者Gabe Spound
相关产品推荐
相关产品推荐

