底部将文本视图与GridView中的ImageView对齐

时间:2014-01-09 09:14:27

标签: android android-layout gridview

到目前为止,这是我的布局

的结果

Layout

我试图将textview放在我的ImageView底部(不在它下面)。 textview应该与ImageView一起使用BottomAlign。

我的ImageView图像是一个正方形。如果textview的内容比我的ImageView的宽度长,则内容应该继续到下一行。

目前我并不关心ImageView的内容是否按比例缩放(即伸展等)。

这是我拥有的XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="5dp">

    <ImageView
        android:id="@+id/iconItem"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_alignBottom="@+id/textItem"
        android:scaleType="fitXY"
        android:padding="0dip"
        android:src="@drawable/shout_ic"/>
    <TextView
        android:id="@id/textItem"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textSize="11sp"
        android:text="Motorcycles"
        android:textColor="#FFF"
        android:background="#8888"/>
</RelativeLayout>

我如何实现我想要的结果?

编辑1:

我想我正在取得进步......(但不完全像我想到的那样

image is still too small

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="5dp">

    <ImageView
        android:id="@+id/iconItem"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="fitXY"
        android:padding="0dip"
        android:src="@drawable/thumbqoo_launcher_ic"/>
    <TextView
        android:id="@+id/textItem"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_alignBottom="@+id/iconItem"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textSize="11sp"
        android:text="Motorcycles"
        android:textColor="#FFF"
        android:background="#8888"/>
</RelativeLayout>

4 个答案:

答案 0 :(得分:4)

将您的父级布局更改为FrameLayout,方向为vertical,如此

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="5dp" >

<ImageView
    android:id="@+id/iconItem"
    android:layout_width="80dp"
    android:layout_height="80dp"
    android:padding="0dip"
    android:scaleType="fitXY"
    android:src="@drawable/ic_launcher" />

<TextView
    android:id="@+id/textItem"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#8888"
    android:gravity="center"
    android:layout_gravity="bottom"
    android:text="Motorcycles"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:textColor="#FFF"
    android:textSize="11sp" />

</FrameLayout>

答案 1 :(得分:1)

从您的imageview中删除此行android:layout_alignBottom="@+id/textItem",然后尝试在android:layout_alignBottom="@+id/iconItem"

中添加行TextView

ImageView的宽度设置为行布局的宽度

答案 2 :(得分:1)

    http://i.stack.imgur.com/HUY4o.png Check the sample image...
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/album_item"
      android:layout_width="match_parent"
      android:layout_height="fill_parent"
      android:orientation="vertical" >

    <ImageView
       android:id="@+id/cover"
       android:layout_width="148dp"
       android:layout_height="148dp"
       android:src="@drawable/empty_photo" />

   <LinearLayout
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_alignBottom="@+id/cover"
     android:background="#70000000"
     android:padding="6dp" >

     <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/white"
        android:textSize="12sp"
        android:textStyle="bold" />
      </LinearLayout>
    </RelativeLayout>

答案 3 :(得分:0)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="5dp" >

    <ImageView
        android:id="@+id/iconItem"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_alignBottom="@+id/textItem"
        android:padding="0dip"
        android:scaleType="fitXY"
        android:src="@drawable/shout_ic" />

    <TextView
        android:id="@id/textItem"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#8888"
        android:gravity="center"
        android:text="Motorcycles"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="#FFF"
        android:textSize="11sp" android:layout_alignBottom="@id/iconItem"/>

</RelativeLayout>