【问题标题】:Set Text above image在图像上方设置文本
【发布时间】:2012-09-23 10:23:14
【问题描述】:

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

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>

【问题讨论】:

    标签: android android-listview android-imageview textview


    【解决方案1】:

    实现这一点的两种方法是:

    在您的listview.xml 中,将您的LinearLayout 更改为垂直方向并首先定义TextView

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

    或者您可以将LinearLayout 更改为RelativeLayout 并在图像视图上使用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>
    

    【讨论】:

      【解决方案2】:

      您应该在 listview.xml 中添加行 'android:orientation="vertical"' (线性布局部分)

      所以您的 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>
      

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-11-21
          • 1970-01-01
          • 2014-09-24
          • 1970-01-01
          相关资源
          最近更新 更多