将TextView的文本相对于其drawableLeft图像垂直居中

use*_*016 44 android android-widget android-layout

我有这个组件:

<TextView
    android:id="@+id/item_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawableLeft="@drawable/icon" />
Run Code Online (Sandbox Code Playgroud)

drawableLeft属性中的图像大于文本的字体,因此我希望文本相对于图像垂直居中.我怎么能得到这个效果?

Mar*_*kes 99

你想要"重力"注意这不要与布局重力混淆,布局重力移动整个文本视图,而重力移动文本视图中的文本.

<TextView
    android:id="@+id/item_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawableLeft="@drawable/icon"
    android:gravity="center_vertical" />
Run Code Online (Sandbox Code Playgroud)


Lea*_* ES 55

除了设置引力之外,这还可以通过减少textview顶部和底部的填充来帮助在某些情况下进行对齐,这可能是不相等的:

android:includeFontPadding="false"
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,'android:gravity`与此相结合为我解决了它! (8认同)
  • 是的,它对我有帮助!非常感谢! (2认同)

小智 6

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