在Android Studio中如何为按钮添加保留原有色彩的图片?
问题原因
Android Studio 新建项目默认采用 MaterialComponents 系列主题,按钮控件会默认加载主题主色作为着色滤镜,覆盖图片本身的色彩,就会出现图片变统一紫色的情况。
解决方案
- 单个按钮调整:在对应按钮的 XML 布局代码中添加属性
app:tint="@null"即可清除默认着色。如果是将图片设置为按钮背景,额外添加app:backgroundTint="@null"属性即可。 - 全局取消按钮默认着色:找到
res/values/themes目录下的主题文件,在主题配置中添加<item name="materialButtonIconTint">@null</item>,所有按钮都不会再默认添加着色滤镜。 - 动态设置场景清除着色:如果是代码中动态给按钮设置图片,设置完成后调用
button.setIconTint(null)(MaterialButton)或者button.setBackgroundTintList(null)即可清除着色。 - 主题替换方案:如果不需要 MaterialComponents 的默认样式,可以将主题父类从
Theme.MaterialComponents.*修改为Theme.MaterialComponents.*.Bridge,即可兼容原有 AppCompat 主题的显示逻辑,不会出现默认着色。
内容的提问来源于stack exchange,提问作者Modio Yt
相关产品推荐
相关产品推荐

