Android,设置按钮的背景颜色会丢失涟漪效果。

10 浏览
0 Comments

Android,设置按钮的背景颜色会丢失涟漪效果。

给安卓按钮添加颜色后,失去了用户感知到点击响应的涟漪效果。如何修复此问题?我搜索了很多解决方案,但没有找到一个确切且不含糊的解决方法。


    
    
        
        
        
    
    
    
        

0
0 Comments

问题的出现原因:在设置按钮的背景颜色时,失去了涟漪效果。

解决方法:可以通过添加一个额外的涟漪drawable来同时添加涟漪效果和背景颜色。

具体步骤如下:

1. 创建一个名为"ripple.xml"的drawable文件,将该文件放置在drawable文件夹下。

2. 在"ripple.xml"文件中添加以下内容:




    
        
            
        
    
    
        
            
            
        
    

3. 在布局文件中,使用该ripple drawable作为按钮的背景,示例代码如下:



    

通过以上步骤,即可在设置按钮的背景颜色时保留涟漪效果。

0
0 Comments

问题的原因是:修改按钮的背景颜色会丢失涟漪效果。

解决方法一:不要改变按钮的背景,而是改变主题。


然后在xml文件中使用这个主题:

解决方法二:可以在主应用程序主题中添加这个属性:


这样就不需要改变按钮的背景了。

如果你想完全自定义背景,你需要创建一个选择器,并在那里设置涟漪效果。

0
0 Comments

在Android中,通过设置按钮的背景颜色会导致水波纹效果丢失的问题。这个问题的原因是在版本23以下不支持向android:foreground属性设置?attr/selectableItemBackground。解决方法是使用Widget.AppCompat.Button.Borderless样式来替代Widget.AppCompat.Button.Colored样式,这样可以保持水波纹效果。下面是一个有效且适用的示例代码:

对于使用Widget.AppCompat.Button.Colored样式的圆角按钮,上述方法不起作用,阴影的边角会变得尖锐。但对于使用Widget.AppCompat.Button.Borderless样式的按钮,效果良好。

0