我该如何实现这种布局?

时间:2013-01-11 14:39:35

标签: android android-layout

我的布局有3个按钮。我想为每个imageview找到两个textview。我该如何实现这种布局? AbsoluteLayout足以满足我的需求吗?

这是我的布局部分。

 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:layout_gravity="center_horizontal"
        android:weightSum="2" >       

         <ImageView
             android:id="@+id/btn1"
             android:layout_width="100dp"
             android:layout_height="wrap_content"
             android:layout_alignParentRight="true"             
             android:background="@drawable/gray" />


         <ImageView
             android:id="@+id/btn2"
             android:layout_width="100dp"
             android:layout_height="wrap_content"
             android:layout_alignParentRight="true"             
             android:background="@drawable/gray" />

         <ImageView
             android:id="@+id/btn3"
             android:layout_width="100dp"
             android:layout_height="wrap_content"
             android:layout_alignParentRight="true"             
             android:background="@drawable/gray" />

    </LinearLayout>

我想实现这个布局。盒子是imageview。 a busy cat http://img824.imageshack.us/img824/2385/layoutrq.jpg

5 个答案:

答案 0 :(得分:1)

使用 RelativeLayout 代替ImageView:

<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:gravity="center"
    android:background="#000">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView1" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView1"
        android:text="TextView2" />

</RelativeLayout>

我建议为它重新创建一个单独的布局和类。

答案 1 :(得分:1)

使用线性布局,您可以这样做。

<?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:weightSum="3"
    android:background="#F0F0F0" >

       <LinearLayout android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:gravity="center_vertical|center_horizontal"
           android:orientation="vertical">

            <TextView
           android:id="@+id/textView2"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="TextView" />

       <TextView
           android:id="@+id/textView1"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_marginTop="20dp"
           android:text="TextView" />
       </LinearLayout>

      <LinearLayout android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_weight="1"
            android:gravity="center_vertical|center_horizontal"
           android:orientation="vertical">

            <TextView
           android:id="@+id/textView2"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="TextView" />

       <TextView
           android:id="@+id/textView1"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_marginTop="20dp"
           android:text="TextView" />
       </LinearLayout>

      <LinearLayout android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_weight="1"
            android:gravity="center_vertical|center_horizontal"
           android:orientation="vertical">

            <TextView
           android:id="@+id/textView2"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="TextView" />

       <TextView
           android:id="@+id/textView1"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_marginTop="20dp"
           android:text="TextView" />
       </LinearLayout>

    </LinearLayout>

答案 2 :(得分:0)

使用Button而不是ImageView。

答案 3 :(得分:0)

使用Button而不是ImageView,你可能想要一个自定义按钮背景? 使用此:

<ImageButton
android:id="@+id/ImageButton01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/album_icon"
android:background="@drawable/round_button" />

或者这仍然使用图像文件:

ImageView iv = (ImageView)findViewById(R.id.ImageView01);
iv.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub

}
});

答案 4 :(得分:0)

这是你需要的吗?

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="10dp"
        android:gravity="center"
        android:orientation="horizontal">       

        <RelativeLayout
            android:id="@+id/btn1"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_margin="10dp"
            android:layout_alignParentLeft="true"
            android:background="@drawable/gray"
            android:orientation="vertical">   

            <TextView
                android:id="@+id/txt1"
                android:layout_width="match_parent"
                android:layout_alignParentTop="true"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:text="Label 1" />

            <TextView
                android:id="@+id/txt2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:gravity="center_horizontal"
                android:text="Label 2" />

        </RelativeLayout>    

        <RelativeLayout
            android:id="@+id/btn2"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_margin="10dp"
            android:layout_toRightOf="@id/btn1"
            android:background="@drawable/gray"
            android:orientation="vertical">   

            <TextView
                android:id="@+id/txt3"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:gravity="center_horizontal"
                android:text="Label 3" />

            <TextView
                android:id="@+id/txt4"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:gravity="center_horizontal"
                android:text="Label 4" />

        </RelativeLayout>    

        <RelativeLayout
            android:id="@+id/btn3"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_margin="10dp"
            android:layout_toRightOf="@id/btn2"
            android:background="@drawable/gray"
            android:orientation="vertical">   

            <TextView
                android:id="@+id/txt5"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:gravity="center_horizontal"
                android:text="Label 5" />

            <TextView
                android:id="@+id/txt6"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:gravity="center_horizontal"
                android:text="Label 6" />

        </RelativeLayout>    

    </RelativeLayout>

编辑:立即检查。您可以将relativeLayouts的背景设置为在图像视图中您想要的任何内容,并设置clicklistener,使它们像按钮一样。