Android:四个正方形的对齐

Posted

技术标签:

【中文标题】Android:四个正方形的对齐【英文标题】:Android: Alignment of four squares 【发布时间】:2011-02-20 01:09:12 【问题描述】:

我正在尝试在 android 屏幕上对齐四个大小相同的 正方形,我现在已经尝试了感觉上百万种不同的方法,但它们似乎都不起作用:(。

我现在得到的如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"      android:id="@+id/MasterLayout" android:layout_     android:layout_  android:background="#FFFFFF">
<TableLayout android:layout_ android:id="@+id/mainlay" android:background="#444444" android:layout_weight="0.2" android:layout_ android:padding="0dip">
    <TableRow android:layout_weight="1"  android:background="#BBBBBB" android:padding="0dip">
        <ImageView android:id="@+id/ImageView1" android:layout_marginLeft="10px" android:layout_weight="1" android:layout_marginRight="5px" android:layout_ android:layout_ android:scaleType="centerInside" android:src="@drawable/bigbox_new"></ImageView>
        <ImageView android:id="@+id/ImageView2" android:layout_marginLeft="5px" android:layout_weight="1" android:layout_marginRight="10px" android:layout_ android:layout_ android:scaleType="centerInside" android:src="@drawable/bigbox_new"></ImageView>
    </TableRow>
    <TableRow android:layout_weight="1" android:padding="0dip">
        <ImageView android:id="@+id/ImageView3" android:layout_marginLeft="10px" android:layout_weight="1" android:layout_marginRight="5px" android:layout_ android:layout_ android:scaleType="centerInside" android:src="@drawable/bigbox_new"></ImageView>
        <ImageView android:id="@+id/ImageView4" android:layout_marginLeft="5px" android:layout_weight="1" android:layout_marginRight="10px" android:layout_ android:layout_ android:scaleType="centerInside" android:src="@drawable/bigbox_new"></ImageView>
    </TableRow>
</TableLayout>
</LinearLayout>

这基本上完成了工作。然而,这四个图像中的每一个在其上方和下方都有一个巨大的填充。我该如何摆脱它?还是我需要一起使用不同的布局类型?

为了帮助说明我的问题,这里有一张图片。 左边是我得到的,右边是我需要的。 Image

非常感谢!

干杯,马库斯!

【问题讨论】:

【参考方案1】:

从您的 TableRows 中删除 layout_weight 并将其 layout_height 设置为 wrap_content。然后在它们下方添加一个空的 TableRow,并将 layout_height 设置为 fill_parent

【讨论】:

谢谢! fill_parent 布局的这个技巧正是我想要的。【参考方案2】:

尝试使用 scaleType 作为 centerCrop,如果图像尺寸更大,那么这将为您解决问题。但这不是最好的方法,最好是更改图像资源。

HTH!

【讨论】:

你好,卡兰。谢谢你的小费。但是,我的描述似乎不太清楚(尤其是图片);我需要正方形保持正方形。它们应该在 2x2 网格中尽可能大。但是屏幕上的剩余空间一定不能在四个方格之间,而是在屏幕底部的下方。你有指针给我吗?谢谢。【参考方案3】:

尝试将 ImageView 高度设置为 fill_parent,我认为这应该可以解决问题。无论如何,如果您的 XML 属性被分成几行,这会有所帮助,我们其他人很难读取单行属性。

另外,为什么要在 LinearLayout 中放置 TableLayout?除非您在该 Linear 中有更多元素,否则您可以摆脱它。

【讨论】:

很遗憾,这并没有达到预期的效果。谢谢你的时间! @ 代码;你说的对。我现在已将其重组为几行。

以上是关于Android:四个正方形的对齐的主要内容,如果未能解决你的问题,请参考以下文章

在响应式正方形中垂直对齐文本块

如何改变悬浮时垂直居中的SVG外观?

LeetCode 0593. 有效的正方形

几何画板演示正方形拼凑过程的技巧

利用柏林噪声生成噪声函数

如何在 iOS 的 Objective-C 中使用对齐区域编程拖放