Android:使用alignBaseline作为文本后面的图像

Gae*_*ege 13 android textview android-layout android-imageview android-relativelayout

下面是一个TextView,后跟RelativeLayout中包含的ImageView.我试图让图像的底部与文本的基线对齐.当我使用alignBaseline作为图像时,引用TextView,它是图像的顶部,与文本的基线而不是底部对齐.我怎样才能解决这个问题?

<TextView 
        android:id="@+id/month" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:text="feb"
        android:textSize="60px"
        android:typeface="serif"
        />
   <ImageView 
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:paddingLeft="15px"
        android:layout_toRightOf="@id/month"
        android:layout_alignBaseline="@id/month"
        android:src="@drawable/minicalimage" 
        android:id="@+id/calimage"
        />
Run Code Online (Sandbox Code Playgroud)

luj*_*jop 16

从API11开始,您可以简单地使用 android:baselineAlignBottom="true"

在API11之前,您可以覆盖getBaseLine()并返回图像高度.


Vit*_*y A 6

您应该在ImageView中使用以下两行来将图像视图的底部对齐到附近TextView的底部:

        android:layout_alignBaseline="@+id/txtview"
        android:baselineAlignBottom="true"

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >
    <TextView
        android:id="@+id/txtview"
        ... />

    <ImageView
        ...
        android:layout_toRightOf="@+id/txtview"
        android:layout_alignBaseline="@+id/txtview"
        android:baselineAlignBottom="true"
        ...
        />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)


Gae*_*ege 3

我能够完成我想做的事情。我没有使用alignBaseline,只是解决了填充和调整图像大小的问题。我遇到的一些问题是由于图像太大并且它不合需要地填充了空间。我用来实现我想要的代码如下:

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:paddingLeft="25px"
    android:paddingTop="30px"
    android:id="@+id/LinearLayout1">
    <TextView 
        android:id="@+id/month" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="feb"
        android:textSize="60px"
        android:typeface="serif"
        />
   <ImageView 
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_toRightOf="@id/month"
        android:layout_alignBottom="@id/month"
        android:paddingBottom="12px"
        android:src="@drawable/minicalimage" 
        android:id="@+id/calimage"
        />
    <TextView 
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="2011" 
        android:id="@+id/year" 
        android:layout_toRightOf="@id/calimage"
        android:layout_alignBaseline="@id/month"
        android:typeface="serif"
        android:textSize="40px"
        />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

结果是这样的:
日历/计划表的标题