【问题标题】:How to add a image at the center of a TableLayout如何在 TableLayout 的中心添加图像
【发布时间】:2017-03-29 10:24:52
【问题描述】:

我有一个 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 上方,然后将重力分配给图像
  • 你能给我一个样本吗,因为我已经尝试过 frameLayout,但问题在于分层

标签: android android-layout android-imageview android-view


【解决方案1】:

这样的事情会奏效。

<?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>

值得注意的是,您应该查看gravitylayout_gravity 之间的区别,gravity 分配布局内小部件的对齐方式,而layout_gravity 分配布局本身的对齐方式。

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

结果

【讨论】:

    【解决方案2】:

    试试这个结构

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

    【讨论】:

      猜你喜欢
      • 2012-04-24
      • 1970-01-01
      • 1970-01-01
      • 2021-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-28
      • 1970-01-01
      相关资源
      最近更新 更多