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

我有这个组件:

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

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

  • Android:具有自定义视图的AppWidget无法正常工作
  • AutoStart应用程序无法正常工作
  • Android软键盘未在webView`中打开
  • 如何做一个侧边栏菜单
  • Holoeverywhere:如何以编程方式在运行时从活动中删除操作栏
  • 相对布局忽略setMargin()
  • 小部件上的方向更改button没有响应
  • Androidbutton位置以编程方式
  • 你想“重力”注意这不是与布局引力混淆,布局引力移动整个文本视图,而引力移动文本视图内的文本。

     <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" ,它对我的​​代码没有任何影响。