最近项目中需要做像单条微博下方的评论、转发、点赞按钮一样效果的几个小按钮,就是图片在文字的左边,并且都居中显示。一开始我尝试的方法是使用android:drawableLeft 和 paddingleft 来进行一个微调,发现可以做到想要的效果,但是新的问题也随之而来了。我的项目中底部并不是固定的三个按钮,当满足一定条件的时候,左侧的按钮会隐藏掉,那么之前调的paddingleft 基本算是作废了,效果如下图所示
很明显的可以看到当按钮减少一个之后,图片和文字的间距又拉大了,于是在网上查找了一些资料,无外乎两种方法,第一种,用LinearLayout 设置水平,里面包一层ImageView和一层TextView来达到效果,这种方法代码冗余高,果断舍弃不看。第二种方法就是我现在使用的方法,就是重写button来实现这个功能,我们先来看看代码