Android 开发——组件获得焦点时,同时为组件设置圆角与背景填充色

在 Android 开发时,当用户手指移至或点击某个组件,为了给用户一个信息(即组件获得了焦点),可以给组件设置不同的背景填充色。

一开始我在 drawable 目录下新建了一个 xml 文件,内容如下。(solid:组件填充色属性  stroke:组件边框属性  corners:组件圆角属性)

​​​​        
        
            
            
            
        ​​​​

将上面的 xml 应用到组件上,设置组件的 background 为上面的那个xml 文件就可以了。

但这样设置只能单方面设置组件的背景填充色、边框、圆角,而不能使组件获得焦点后改变组件填充色,如果在组件的 xml 里为组件设置两个 background ,这样不行吧,那在逻辑里设置组件获得焦点后的背景填充色又比较麻烦。为了达到这样的效果,我重新修改了我的 xml 文件的内容。

        
        
            
                
                    
                    
                    
                
            

            
                
                    
                    
                    
                
            
        

selector 里的第一个 item 是设置组件没有获得焦点时的 style ,第二个 item 是设置组件获得焦点后的 style 。除了用selector 标签可以达到这个效果外,layer-list 标签也可以达到这个效果。

shape、selector、layer-list 的比较可以参见这个网站:shape、selector、layer-list 的详细介绍

你可能感兴趣的:(Android,项目开发笔记)