Android textview drawabletop对齐方式

时间:2014-02-24 20:05:41

标签: android textview drawable

我的菜单有点问题。我有3个Textview跨越设备的整个宽度。每个Textview都应包含上面的文字和图片。

问题: 图像始终显示在textview的边框上 在textview下面添加了开放空间(如果我删除了图像,下面的空间也消失了)

1

我希望图标和文字在我的textview中心对齐为“1”。

当前部分代码:(图标添加到xml外部,因此在此代码中不可见,我删除了一些与此部分无关的代码)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/backgroundBlue"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<LinearLayout
    android:id="@+id/llMenu"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:orientation="horizontal" >

    <com.olbrecht.thescienceofwinning.SquareTextView
        android:id="@+id/menu_ebook"
        android:text="@string/menu_ebook"
        android:textColor="@color/white"
        android:layout_width="0dp"
        android:layout_height ="fill_parent"
        android:layout_weight="1" 
        android:gravity="center_vertical|center_horizontal"
        android:background="@color/menuBlue" />

    <com.olbrecht.thescienceofwinning.SquareTextView
        android:id="@+id/menu_library"
        android:text="@string/menu_library"
        android:textColor="@color/white"
        android:layout_width="0dp"
        android:layout_height ="fill_parent"
        android:layout_weight="1" 
        android:gravity="center_vertical|center_horizontal"
        android:background="@color/menuBlue"
        android:layout_marginLeft="2dp"
        android:layout_marginRight="2dp" />

    <com.olbrecht.thescienceofwinning.SquareTextView
        android:id="@+id/menu_faq"
        android:text="@string/menu_faq"
        android:textColor="@color/white"
        android:layout_width="0dp"
        android:layout_height ="fill_parent"
        android:layout_weight="1" 
        android:gravity="center_vertical|center_horizontal"
        android:background="@color/menuBlue" />

</LinearLayout>

</RelativeLayout>

注意:我的textview的大小在每个设备上是不同的,取决于宽度,高度匹配等于宽度,形成一个正方形。

1 个答案:

答案 0 :(得分:1)

通过更改android:gravity="center_horizontal"并添加android:layout_gravity="bottom"

来解决问题

并添加以下代码以创建图标并计算高度以定义顶部填充:

 TextView tv_ebook = (TextView)findViewById(R.id.menu_ebook);
 tv_ebook.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.ebook_icon, 0, 0);
 BitmapDrawable bd_ebook=(BitmapDrawable) this.getResources().getDrawable(R.drawable.ebook_icon);
 int h_ebook = bd_ebook.getBitmap().getHeight();
 tv_ebook.setPadding(0, h_ebook, 0, 0);