将TextView的文本垂直于其drawableLeft图像

我有这个组件:

<TextView android:id="@+id/item_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableLeft="@drawable/icon" /> 

drawableLeft属性中的图像大于文本的字体,所以我希望文本相对于图像垂直居中。 我怎样才能得到这个效果?

Solutions Collecting From Web of "将TextView的文本垂直于其drawableLeft图像"

你想“重力”注意这不是与布局引力混淆,布局引力移动整个文本视图,而引力移动文本视图内的文本。

 <TextView android:id="@+id/item_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableLeft="@drawable/icon" android:gravity="center_vertical" /> 

除了设置重力之外,还可以通过减lesstextview顶部和底部的填充(这些填充可能不相等)来帮助alignment:

 android:includeFontPadding="false" 

您应该将DrawableTextView放在一个RelativeLayout ,并在TextView使用layout_alignBaseline属性。

您也可以在Drawable放置两个项目,一个是horizontal方向, layout_height="wrap_content"layout_gravity="center_vertical" TextView上的layout_gravity="center_vertical"

如果你不关心文本口音,只要尝试android:includeFontPadding="false" 。这将删除额外的顶部和底部填充的TextView 。 至于android:gravity="center_vertical" ,它对我的​​代码没有任何影响。