在图像上方设置文字

时间:2012-09-23 10:23:14

标签: android android-listview android-imageview textview

enter image description here

我想在图片上方设置文字名称。我该怎么做?我有一个listview和一个单独的imageview。但我在搜索框中搜索了一些名字。结果将显示带有文本的图像。我想在我的图像上方显示文字。

main.xml中:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/EditText01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="Search" >
    </EditText>

    <ListView
        android:id="@+id/ListView01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

listview.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="left|center"
    android:paddingBottom="5px"
    android:paddingLeft="5px"
    android:paddingTop="5px" >

    <ImageView
        android:id="@+id/ImageView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
    </ImageView>

    <TextView
        android:id="@+id/TextView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10px"
        android:textColor="#0099CC"
        android:textSize="20px"
        android:textStyle="bold" >
    </TextView>

</LinearLayout>

3 个答案:

答案 0 :(得分:4)

实现这一目标的两种方法是:

listview.xml中将LinearLayout更改为垂直方向,然后先定义TextView

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              ...
              android:orientation="vertical">
          <TextView  .....></TextView>
          <ImageView .....></ImageVIew>  
</LinearLayout>

您可以将LinearLayout更改为RelativeLayout并使用imageview上的android:layout_below属性。

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
              ...>
          <TextView android:id="@+id/TextView01"
                    .....></TextView>
          <ImageView .....
                     android:layout_below="@id/TextView01"></ImageVIew>  
</RelativeLayout>

答案 1 :(得分:3)

您应该在您的 listview.xml 中添加'android:orientation =“vertical”'行 (LinearLayout部分)

所以你的listview.xml将如下所示:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_height="wrap_content"
android:gravity="left|center"
                android:layout_width="fill_parent"
android:paddingBottom="5px"                
                android:paddingTop="5px"
android:paddingLeft="5px"
android:orientation="vertical">
                <ImageView android:id="@+id/ImageView01"
                            android:layout_width="wrap_content"
android:layout_height="wrap_content">
            </ImageView>
            <TextView android:id="@+id/TextView01"
                            android:layout_width="wrap_content"
android:layout_height="wrap_content"
                            android:textSize="20px"
                            android:textStyle="bold"
                            android:layout_marginTop="10px"
android:textColor="#0099CC">
            </TextView>
</LinearLayout>

答案 2 :(得分:1)

查看FrameLayout而不是LinearLayout作为父视图组。您可以使用边距/填充来将视图定位在任何位置:

http://www.learn-android.com/2010/01/05/android-layout-tutorial/3/