Android 如何在TableLayout的中心添加图像

Android 如何在TableLayout的中心添加图像,android,android-layout,android-imageview,android-view,Android,Android Layout,Android Imageview,Android View,我有一个TableLayout,其中一些tablerow如下: 我想在上述布局的圆形标记下添加一个图像,如下所述: 这是我的布局代码: <TableLayout android:layout_width="wrap_content" android:id="@+id/table1" android:gravity="center" android:layout_height="wrap_content">

我有一个TableLayout,其中一些tablerow如下:

我想在上述布局的圆形标记下添加一个图像,如下所述:

这是我的布局代码:

   <TableLayout
        android:layout_width="wrap_content"
        android:id="@+id/table1"
        android:gravity="center"
        android:layout_height="wrap_content">

        <TableRow>

    <ImageView
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:id="@+id/img1_1"
        android:background="@drawable/button"
        android:layout_margin="3dp"
        />

    <ImageView
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:id="@+id/img1_2"
        android:background="@drawable/button"
        android:layout_margin="3dp" />

    </TableRow>
    <TableRow>

    <ImageView
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:id="@+id/img1_3"
        android:background="@drawable/button"
        android:layout_margin="3dp"
   />

    <ImageView
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:id="@+id/img1_4"
        android:background="@drawable/button"
        android:layout_margin="3dp" />
    </TableRow>

</TableLayout>

那么,如何在布局的中心位置添加图像呢?

试试这种结构

<FrameLayout>
<TableLayout></TableLayout>
<ImageView android:layout_gravity="centre"/>
</FrameLayout>

像这样的东西会有用的

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="biw.myapplication.MainActivity">

<TableLayout
    android:layout_width="wrap_content"
    android:id="@+id/table1"
    android:layout_gravity="center"
    android:layout_height="wrap_content">

    <TableRow>

        <ImageView
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:id="@+id/img1_1"
            android:background="@drawable/button"
            android:layout_margin="3dp"
            />

        <ImageView
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:id="@+id/img1_2"
            android:background="@drawable/button"
            android:layout_margin="3dp" />

    </TableRow>
    <TableRow>

        <ImageView
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:id="@+id/img1_3"
            android:background="@drawable/button"
            android:layout_margin="3dp"
            />

        <ImageView
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:id="@+id/img1_4"
            android:background="@drawable/button"
            android:layout_margin="3dp" />
    </TableRow>
</TableLayout>

<ImageView
    android:layout_gravity="center"
    android:layout_width="70dp"
    android:layout_height="70dp" />

</FrameLayout>

值得注意的是,您应该研究
gravity
layout\u gravity
之间的区别,
gravity
指定布局内小部件的对齐方式,而
layout\u gravity
将对齐方式指定给布局本身

此外,此代码仅在为图像指定静态宽度和高度时有效

结果


我会使用FrameLayout,将图像分层到TableLayout之上,然后将重力分配给图像。你可以给我一个示例,因为我已经尝试过FrameLayout,但问题在于分层