Android如何移除ImageButton错位半透明层与默认按压效果?
问题现象
使用Widget.ImageButton样式实现的按钮,长期存在两类显示异常:
- 按钮表面会叠加多余的半透明遮罩层,在部分系统配置下显示效果突兀、违和
- 按钮处于按压状态时,默认阴影效果和按钮自身尺寸不匹配

我已经为按钮的聚焦、按压状态配置了自定义背景,不需要系统额外叠加任何默认交互效果。初步判断该效果是Android从Lollipop版本开始引入的默认机制,疑似由colorControlHighlight属性控制。
解决方法
在ImageButton的XML布局属性中添加以下配置,即可完全移除上述多余的默认效果:
android:stateListAnimator="@null"
该配置不会影响自定义的按钮状态背景逻辑,只会禁用系统默认附加的状态动画、高亮遮罩和尺寸不匹配的按压阴影。
注:该方案由Mike M.提供
内容的提问来源于stack exchange,提问作者aphelion
相关产品推荐
相关产品推荐

