如何垂直和水平排列一些图像

时间:2015-04-26 05:44:59

标签: android android-layout android-xml

在我的应用程序中我有10张图像,我使用线性布局排列了两个图像,我希望在第一行下排列剩余图像(两个图像组)。我试过这段代码,我不知道如何安排第一行下的剩余图像,我也想添加相同的滚动视图。是否可以为所有线性布局添加单个滚动视图?我试过但代码不能正常工作。有谁能够帮我?我是Android布局的新手。

 <RelativeLayout 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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.cozyne.user.picimagetest.GridViewActivity">

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageButton
    android:id="@+id/imageButton1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/gridimg" />
<ImageButton
    android:id="@+id/imageButton2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/gridimg" />

</LinearLayout>
<LinearLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:gravity="start"
    android:orientation="vertical"
    android:layout_weight="1"
   >
<ImageButton
    android:id="@+id/imageButton4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/gridimg" />


<ImageButton
    android:id="@+id/imageButton5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/gridimg" />


</LinearLayout>
</RelativeLayout>

4 个答案:

答案 0 :(得分:0)

使用Gridview或RecyclerView使用自定义适配器intead。

http://developer.android.com/guide/topics/ui/layout/gridview.html

答案 1 :(得分:0)

将android:layout_below添加到第二行,因为您的父标记是RelativeLayout和In RelativeLayout你必须通过其他控件ID设置子控件。

   <RelativeLayout 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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.cozyne.user.picimagetest.GridViewActivity">

    <LinearLayout
    android:id="@+id/firstrow"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center_vertical"
    android:orientation="horizontal">
    <ImageButton
        android:id="@+id/imageButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/gridimg" />
    <ImageButton
        android:id="@+id/imageButton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/gridimg" />

    </LinearLayout>
    <LinearLayout
    android:id="@+id/secondrow"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
     android:layout_below="@+id/firstrow"
        android:gravity="start"
        android:orientation="vertical"
        android:layout_weight="1"
       >
    <ImageButton
        android:id="@+id/imageButton4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/gridimg" />


    <ImageButton
        android:id="@+id/imageButton5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/gridimg" />


    </LinearLayout>
    </RelativeLayout>

答案 2 :(得分:0)

您使用的布局不一致。将每组两个图像放入其自己的线性布局中,并将其方向设置为水平。然后对每个后续行保持一致。您还可以将表格布局与表格行一起用作行。您应该始终如一地设置宽度,并确保设置高度以包装内容。如果您遇到行高不一致的问题,可以为每行指定一个0dp的高度,每行的layout_weight为1。但是,这可能会扭曲/切断您的图像。

<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:paddingLeft="@dimen/activity_horizontal_margin"
          android:paddingRight="@dimen/activity_horizontal_margin"
          android:paddingTop="@dimen/activity_vertical_margin"
          android:paddingBottom="@dimen/activity_vertical_margin"
          android:orientation="vertical"
          tools:context="com.cozyne.user.picimagetest.GridViewActivity">
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <ImageButton
        android:id="@+id/imageButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/gridimg" />
    <ImageButton
        android:id="@+id/imageButton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/gridimg" />
</LinearLayout>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    >
    <ImageButton
        android:id="@+id/imageButton4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/gridimg" />
    <ImageButton
        android:id="@+id/imageButton5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/gridimg" />
    </LinearLayout>
</LinearLayout>

答案 3 :(得分:0)

要在TableLayout中执行此操作,您可以像这样修改它:

<TableLayout 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:paddingLeft="@dimen/activity_horizontal_margin"
          android:paddingRight="@dimen/activity_horizontal_margin"
          android:paddingTop="@dimen/activity_vertical_margin"
          android:paddingBottom="@dimen/activity_vertical_margin"
          android:orientation="vertical"
          tools:context="com.cozyne.user.picimagetest.GridViewActivity">



<TableRow
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <ImageButton
        android:id="@+id/imageButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/gridimg"/>
    <ImageButton
        android:id="@+id/imageButton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/gridimg" />
</TableRow>

<TableRow
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    >
    <ImageButton
        android:id="@+id/imageButton4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/gridimg" />
    <ImageButton
        android:id="@+id/imageButton5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/gridimg" />
</TableRow>

<!--add rows as needed-->

<!-- final row with one image-->
<TableRow
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:layout_gravity="left"
    android:src="@drawable/gridimg" >
</TableRow>