RadioButton 右上角添加背景图,不需要自定义RadioGroup

实在想不出什么标题,所以用 BB 代替了,这样格式好看些而已 ~

瞎BB1

做项目时遇到一个效果图,由于是单选,所以用到了RadioButton,RadioButton 虽然有drawableLeft、drawableRight 等属性,但是没办法实现在左上角、右上角等角落加上图片吖,而且我只是需要选中时显示这个对勾而已,网上一大堆自定义RadioGroup是什么鬼,就加个图片而已,需要这么麻烦嘛 ~ ~ ~,于是动用自己的灵光一闪,额,用词不准不要介意,突然想到了一个神器——Android的Drawable之 LayerDrawable

RadioButton 右上角添加背景图,不需要自定义RadioGroup_第1张图片
效果图

BB2——LayerDrawable

LayerDrawable 对应的 XML 标签是 < layer-list > ,它表示的是一种层次化的 Drawable 集合,通过将不同的 Drawable 放置在不同的层上面从而达到一种叠加后的效果。用法网上应该有很多,我就不赘述了,后期会上 Drawable 系列的文章,到时候也会详细讲述的。
当然如果现在想了解更多的话也可以去看看这篇文章 LAYER-LIST篇,我就是从这里找到的灵感,直接上代码吧,这是上面效果图里面的 RadioButton 的背景图的 XML 实现。



    
    
        
            
            
        
    

    
    
        
            
            
                
                    
                    
                    
                
            

            
            
                
            

        
    
    


注意: 如果你看了 LAYER-LIST 这篇文章就知道 < item > 标签里面就有 drawable 属性,那为什么我还要再加个 bitmap 的子标签呢,因为直接在 item 里加图片的话会被拉伸,拉伸成整个背景图,而我们只需要在右上角显示而已,所以用 bitmap 标签可以保证图片的原始大小。当然大家也可以自己去尝试这种情况。

好了 ,到这里就已经实现了 RadioButton 的背景图添加,是不是特别方便,我们这种简单的需求,就不需要用到什么自定义 RadioGroup 啥的了。通过这种方式,大家还可以实现各种特效哟,什么左上角,左下角,右下角啥的都不成问题了,发挥你的想象吧。

最后贴下完整的 RadioGroup 的代码 :



    
    


这就是上面效果图里的 RadioGroup 的所有代码,其中 btn_white_withdraw_radiogroup 就是那个 layer-list 的 XML,大家参考就好,按照自己的需求去实现,切勿直接 copy ,直接 copy 肯定是会出错的。

你可能感兴趣的:(RadioButton 右上角添加背景图,不需要自定义RadioGroup)