如何在嵌套的ViewGroup中更改ImageView排列不均匀?

时间:2016-06-13 17:49:15

标签: android user-interface viewgroup

我正在使用Android中的嵌套ViewGroup,我只使用了LinearLayout和RelativeLayout,我需要设计一个如下图所示的Activity

enter image description here

所以我用嵌套的ViewGroup

创建了下面显示的xml代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
tools:context="com.example.akashpreet.cards.MainActivity">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:orientation="horizontal">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <ImageView
            android:id="@+id/one1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="center"
            android:src="@drawable/a" />

        <TextView
            android:id="@+id/one2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@id/one3"
            android:text="OneName" />

        <TextView
            android:id="@+id/one3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:text="OneNameDes" />

    </RelativeLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <ImageView
            android:id="@+id/two1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="center"
            android:src="@drawable/b" />

        <TextView
            android:id="@+id/two2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@+id/two3"
            android:layout_alignParentLeft="true"
            android:text="TwoName" />

        <TextView
            android:id="@+id/two3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:text="TwoNameDes" />

    </RelativeLayout>

</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:orientation="horizontal">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <ImageView
            android:id="@+id/three1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="centerCrop"
            android:src="@drawable/c" />

        <TextView
            android:id="@+id/three2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@id/three3"
            android:text="ThreeName" />

        <TextView
            android:id="@+id/three3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:text="ThreeNameDes" />

    </RelativeLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <ImageView
            android:id="@+id/four1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="centerCrop"
            android:src="@drawable/d" />

        <TextView
            android:id="@+id/four2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@id/four3"
            android:text="FourName" />

        <TextView
            android:id="@+id/four3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:text="FourNameDes" />

    </RelativeLayout>


</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:orientation="horizontal">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <ImageView
            android:id="@+id/five1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="centerCrop"
            android:src="@drawable/e" />

        <TextView
            android:id="@+id/five2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@id/five3"
            android:text="FiveName" />

        <TextView
            android:id="@+id/five3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:text="FiveeNameDes" />

    </RelativeLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <ImageView
            android:id="@+id/six1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="centerCrop"
            android:src="@drawable/f" />

        <TextView
            android:id="@+id/six2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@id/six3"
            android:text="SixName" />

        <TextView
            android:id="@+id/six3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:text="SixNameDes" />

    </RelativeLayout>


</LinearLayout>

</LinearLayout>

但是我的输出并不像预期的那样,就像下面显示的图像布局不均匀

enter image description here

请有人帮我修改我的代码,以便ImageView在我的Activity中均匀排列,我使用了a,b,c,d,e,f作为我在代码中使用的6个图像文件的名称我使用了一些不完整的样本图片。

3 个答案:

答案 0 :(得分:0)

您使用的是视图组,但是您有另一个选项使用gridview。 您使用的是linearlayout,权重= 1,方向水平,现在只需将权重= .5添加到图像的相对布局。

io.on('connection', function(socket){
  console.log(socket);
  ...
}

答案 1 :(得分:0)

更改嵌套相对布局的权重。

这是因为图像高度/宽度不固定。

更改图像的父相对布局,如下所示:

<RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

    <ImageView
        android:id="@+id/one1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="center"
        android:src="@drawable/a" />

<RelativeLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1" >


    <ImageView
        android:scaleType="fitXY"
        android:id="@+id/one1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/a" />

答案 2 :(得分:0)

我找到了问题的答案。

如果我在XML中更改此代码

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

        <ImageView
            android:id="@+id/one1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="center"
            android:src="@drawable/a" />

<RelativeLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1">

        <ImageView
             android:id="@+id/one1"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:scaleType="centerCrop"
             android:src="@drawable/a" />

在我的所有RelativeLayout中如果我添加 android:layout_weight =&#34; 1&#34; android:layout_width =&#34; 0dp&#34; < / p>

我按预期在Activity中获得输出。