android – 如何垂直对齐TextView中的文本与复合Drawable

这个问题在 my last question的延续.

我的问题现在几乎是一样的,除了不同于在不同视图(即ImageView和TextView)中分离图像和文本,我学到了我可以使用属性android:drawableLeft来设置一个图像“for”我的文本(建议是在Eclipse上指向我,并在LinearLayout行上显示警告图标).

我认为唯一的区别是,而不是使用setimageResource()方法设置ImageView,我将简单地设置TextView的drawableLeft归因于setCompoundDrawablesWithIntrinsicBounds()方法.相反,当我做出改变时,我被带回到我的原始问题:文本与视图的顶边而不是中心对齐.

这是我的TextView的样子:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >       
    <TextView 
        android:id="@+id/account_login"
        android:layout_marginTop="10dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:drawableLeft="@drawable/pm_gmail"
        android:drawablePadding="8dp"
        android:text="example@gmail.com"
        android:paddingLeft="16dp"
        android:layout_gravity="left|center_vertical" />

    <View
        android:layout_width="fill_parent"
        android:layout_height="1dip"
        android:layout_centerVertical="true"
        android:layout_below="@id/account_login"
        android:layout_marginLeft="16dp"
        android:layout_marginRight="16dp"
        android:layout_marginTop="5dp"
        android:background="#ddddDD" />

</RelativeLayout>

第二个视图只是一个分隔符.

…这是在设置上述属性后的布局的样子:
(我没有足够的声誉发布图像,所以这里是link)

(要清楚,这只是一个静态的例子,我的文本和图像都是在运行时在代码中动态设置的).

任何帮助是极大的赞赏.

解决方法

更改android:layout_gravity =“left | center_vertical”到android:gravity =“center_vertical”. layout_gravity用于将视图定位在容器(布局)中,同时引用重力 查看内容(即本例中为TextView中的文本).

相关文章

###实现效果*本实例主要实现用ViewPage和Fragment实现选项卡...
一、安装 JDK 下载JDK最新版本,下载地址如下: http://www....
这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...