Android自定义行布局问题

时间:2016-04-21 23:49:55

标签: android android-layout android-linearlayout

提前抱歉我需要附上一些图片才能让我的问题更容易理解。我正在为我的自定义行使用线性布局,这给我很多麻烦,试图让行看起来像我想要的。目前它看起来像这样

Curent view

请原谅我即将展示的快速绘画图片,但这就是我希望布局的样子。

desired look

我想在狗图片上方添​​加名称文本框,并在1和2的每个上方添加时间戳文本框。每当我尝试添加文本框来显示它时,它确实与布局混淆。狗图片上方的文本框始终要转到狗图像的右侧或左侧,并将图像推到页面中间,按钮会进一步展开。我对这种布局没有多少经验我通常做相对布局,我可以拖放碎片。任何建议或帮助非常感谢。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageButton
    android:layout_width="150dip"
    android:layout_height="150dip"
    android:id="@+id/dogimage"
    android:clickable="true"
    android:layout_alignParentLeft="true"

    android:background="@drawable/dogpic"
    android:onClick="sendProfile"
    android:scaleType="fitXY" />

<ImageButton
    android:layout_width="75dip"
    android:layout_height="75dip"
    android:id="@+id/dog1num1"
    android:background="@drawable/num1"
    android:clickable="true"
    android:onClick="NumberOne"
    android:layout_marginLeft="10dp"
    android:layout_marginTop="75dp"
    android:scaleType="fitXY" />

<ImageButton
    android:layout_width="75dip"
    android:layout_height="75dip"
    android:id="@+id/dog1num2"
    android:background="@drawable/num2"
    android:clickable="true"
    android:onClick="NumberTwo"
    android:layout_marginLeft="10dp"
    android:layout_marginTop="75dp"
    android:scaleType="fitXY" />
</LinearLayout>

1 个答案:

答案 0 :(得分:2)

您需要将您的imageview / textview组合包装在LinearLayout中。你应该使用src设置imageButton,而不是背景。这样做:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Title" />

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

        <ImageButton
            android:id="@+id/dogimage"
            android:layout_width="150dip"
            android:layout_height="150dip"
            android:clickable="true"
            android:onClick="sendProfile"
            android:scaleType="fitXY"
            android:src="@drawable/dogpic" />

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:orientation="vertical">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Timestamp 1" />

            <ImageButton
                android:id="@+id/dog1num1"
                android:layout_width="75dip"
                android:layout_height="75dip"
                android:layout_marginLeft="10dp"
                android:clickable="true"
                android:onClick="NumberOne"
                android:scaleType="fitXY"
                android:src="@drawable/num1" />

        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:orientation="vertical">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Timestamp 1" />

            <ImageButton
                android:id="@+id/dog1num2"
                android:layout_width="75dip"
                android:layout_height="75dip"
                android:layout_marginLeft="10dp"
                android:clickable="true"
                android:onClick="NumberOne"
                android:scaleType="fitXY"
                android:src="@drawable/num2" />

        </LinearLayout>

    </LinearLayout>
</LinearLayout>