首页 > 解决方案 > 图片按钮下方需要文字

问题描述

我有一个图像按钮。我希望文本显示在图像的底部。所以,我创建了一个框架布局。我在其中放置了图像按钮和文本视图。但是当我在设备上运行代码时,文本与按钮重叠。它没有显示在图像的底部。如何解决这个问题?我有 3 个图像按钮。所有这些都放置在线性布局内。
代码:

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:orientation="horizontal" android:padding="0dp"
    android:layout_height="wrap_content" android:gravity="fill_horizontal" android:layout_margin="0dp">

    <FrameLayout android:layout_height="wrap_content"
        android:layout_width="wrap_content" android:orientation="vertical"
        android:gravity="fill_vertical" android:layout_margin="10dp">

        <ImageButton
            android:id="@+id/imageButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="25dp"

            android:layout_gravity="center_vertical"
            android:ellipsize="end"
            android:scrollHorizontally="true"
            android:singleLine="true"
            android:text="scan ticket"
            android:textStyle="bold"
            android:layout_alignEnd="@+id/tv_question"
            android:layout_alignRight="@+id/tv_question"
            android:background="#00ffffff"
            android:src="@drawable/scan_ticket"
            android:layout_weight="1"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:clickable="false"
            android:text="scan ticket" >
        </TextView>
    </FrameLayout>

    <FrameLayout android:layout_height="wrap_content"
        android:layout_width="wrap_content" android:orientation="vertical"
        android:gravity="fill_vertical" android:layout_margin="10dp">

    <ImageButton
            android:id="@+id/imageButton2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="25dp"
            android:layout_gravity="center_vertical"
            android:ellipsize="end"
            android:scrollHorizontally="true"
            android:singleLine="true"
            android:text="scan and pay"
            android:textStyle="bold"
            android:layout_alignEnd="@+id/tv_question"
            android:layout_alignRight="@+id/tv_question"
            android:background="#00ffffff"
            android:src="@drawable/scan_and_pay"
            android:layout_weight="1"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:clickable="false"
            android:text="scan and pay" >
        </TextView>
    </FrameLayout>

    <FrameLayout android:layout_height="wrap_content"
        android:layout_width="wrap_content" android:orientation="vertical"
        android:gravity="fill_vertical" android:layout_margin="10dp">

    <ImageButton
            android:id="@+id/imageButton3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="25dp"
            android:layout_gravity="center_vertical"
            android:ellipsize="end"
            android:scrollHorizontally="true"
            android:singleLine="true"
            android:text="bank transfer"
            android:textStyle="bold"
            android:layout_alignEnd="@+id/tv_question"
            android:layout_alignRight="@+id/tv_question"
            android:background="#00ffffff"
            android:src="@drawable/bank_transfer"
            android:layout_weight="1"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:clickable="false"
            android:text="bank transfer" >
        </TextView>
    </FrameLayout>

    </LinearLayout>

标签: javaandroid-imagebutton

解决方案


使用 android:layout_marginBottom 和 android:layout_marginTop 完成,如代码所示。
面临的问题:imagebutton 中显示的图像不是完整图像但我现在设法在 ImageButton 和 TextView 中操作 android:layout_marginBottom 和 android:layout_marginTop

  <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:orientation="horizontal" android:padding="0dp"
android:layout_height="wrap_content" android:gravity="fill_horizontal" android:layout_margin="0dp">

<FrameLayout android:layout_height="wrap_content"
    android:layout_width="wrap_content" android:orientation="vertical"
    android:gravity="fill_vertical" android:layout_margin="10dp">

    <ImageButton
        android:id="@+id/imageButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="25dp"
        android:layout_marginBottom="40dp"
        android:layout_marginTop="0dp"
        android:layout_gravity="center_vertical"
        android:ellipsize="end"
        android:scrollHorizontally="true"
        android:singleLine="true"
        android:text="scan ticket"
        android:textStyle="bold"
        android:layout_alignEnd="@+id/tv_question"
        android:layout_alignRight="@+id/tv_question"
        android:background="#00ffffff"
        android:src="@drawable/scan_ticket"
        android:layout_weight="1"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_marginBottom="65dp"
        android:layout_marginTop="65dp"
        android:clickable="false"
        android:text="scan and pay" >
    </TextView>
</FrameLayout>

<FrameLayout android:layout_height="wrap_content"
    android:layout_width="wrap_content" android:orientation="vertical"
    android:gravity="fill_vertical" android:layout_margin="10dp">

<ImageButton
        android:id="@+id/imageButton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="25dp"
        android:layout_marginBottom="40dp"
        android:layout_marginTop="0dp"
        android:layout_gravity="center_vertical"
        android:ellipsize="end"
        android:scrollHorizontally="true"
        android:singleLine="true"
        android:text="scan and pay"
        android:textStyle="bold"
        android:layout_alignEnd="@+id/tv_question"
        android:layout_alignRight="@+id/tv_question"
        android:background="#00ffffff"
        android:src="@drawable/scan_and_pay"
        android:layout_weight="1"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="65dp"
        android:layout_marginTop="65dp"
        android:clickable="false"
        android:text="scan and pay" >
    </TextView>
</FrameLayout>

<FrameLayout android:layout_height="wrap_content"
    android:layout_width="wrap_content" android:orientation="vertical"
    android:gravity="fill_vertical" android:layout_margin="10dp">

<ImageButton
        android:id="@+id/imageButton3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="25dp"
        android:layout_marginBottom="40dp"
        android:layout_marginTop="0dp"
        android:layout_gravity="center_vertical"
        android:ellipsize="end"
        android:scrollHorizontally="true"
        android:singleLine="true"
        android:text="bank transfer"
        android:textStyle="bold"
        android:layout_alignEnd="@+id/tv_question"
        android:layout_alignRight="@+id/tv_question"
        android:background="#00ffffff"
        android:src="@drawable/bank_transfer"
        android:layout_weight="1"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="65dp"
        android:layout_marginTop="65dp"
        android:clickable="false"
        android:text="bank transfer" >
    </TextView>
</FrameLayout>

</LinearLayout>

推荐阅读