TextView中drawable和text整体居中

1、效果如下:

2、xml代码:

<TextView
        android:id="@+id/duration"
        android:layout_width="wrap_content"
        android:layout_height="30dp"
        android:background="@drawable/shape_4d000000_15_bg"
        android:paddingStart="12dp"
        android:paddingEnd="12dp"
        android:drawableStart="@drawable/play_small"
        android:drawablePadding="3dp"
        android:includeFontPadding="false"
        android:text="00:00"
        android:gravity="start|center_vertical"
        android:textColor="#ffffff"
        android:textSize="17sp"/>

3、虽然这个UI很简单,但是看到很多人用一个 LinearLayout 里面放 ImageVIew + TextView 去做,先不说过度渲染的问题,光是写这么多代码就有点嫌弃。看到这效果可能很多人首先想到的是TextView,但是在居中上面可能一下子没调试出来,就立马放弃转用布局来做。所以分享此方法,用一个TextVIew完成这个效果。虽然内容要居中,但是解决这问题的关键点是不要设置居中,反而是要把text的gravity设置为左对齐,这样text就会和drawableStart图标靠在一起了,再加上宽度设置为wrap_content,这样TextView的宽度就可以随着text文本的宽自适应。最后再加个左右两边相等的padding,看起来就像是drawable和text整体居中的效果了。举一反三,不管是drawable是在上下左右哪个方向,都可以通过设置text上下左右对齐来达到相应的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值