Android 如何防止GridLayout中的单元格拉伸?
我正在尝试使用GridLayout以不均匀的大小布局一些图像(我正在尝试实现交错EdGrid) ),但当我将第一个图像放在第一个单元格中时,它会在整个屏幕上延伸 我如何防止它这样做Android 如何防止GridLayout中的单元格拉伸?,android,android-gridlayout,Android,Android Gridlayout,我正在尝试使用GridLayout以不均匀的大小布局一些图像(我正在尝试实现交错EdGrid) ),但当我将第一个图像放在第一个单元格中时,它会在整个屏幕上延伸 我如何防止它这样做 <?xml version="1.0" encoding="UTF-8"?> <GridLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.c
<?xml version="1.0" encoding="UTF-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="4"
android:rowCount="4"
tools:context=".MainActivity" >
<ImageView
android:layout_columnSpan="1"
android:layout_rowSpan="2"
android:src="@drawable/pic1" />
<ImageView
android:layout_columnSpan="2"
android:layout_rowSpan="1"
android:src="@drawable/pic2" />
</GridLayout>
谢谢
Shmulik请使用layout_列和layout_行指定要将ImageView放置在该行的哪一行和哪一列中
<?xml version="1.0" encoding="UTF-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="4"
android:rowCount="4"
tools:context=".MainActivity" >
<ImageView
android:layout_column="1"
android:layout_row="0"
android:src="@drawable/pic1" />
<ImageView
android:layout_column="2"
android:layout_row="0"
android:src="@drawable/pic2" />
</GridLayout>
同时阅读文档,我发现我们可以通过重力来控制拉伸。上面说,
多余空间分布:
GridLayout的多余空间分布基于优先级而不是权重。子对象的拉伸能力是从其行组和列组的对齐特性推断出来的(通常通过设置子对象布局参数的重力特性来设置)。如果沿给定轴定义对齐,则该组件在该方向上视为灵活。如果未设置对齐,则假定零部件不灵活
同一行或列组中的多个组件被视为并行工作。只有当组中的所有组件都是灵活的时,这样的组才是灵活的。相反,位于公共边界两侧的行组和列组被视为串联作用。如果由这两个元素组成的组合组的其中一个元素是柔性的,则该组合组是柔性的
若要拉伸柱,请确保柱内的所有组件都定义了重力。要防止柱拉伸,请确保柱中的一个构件未定义重力
及
在单元组中的组件周围放置等量的空间;使用居中
对齐(或重力)。用于完全控制行或列中的多余空间分布;使用LinearLayout
子视图保存关联单元格组中的组件。当使用这两种技术中的任何一种时,请记住,细胞组可能被定义为重叠
感谢您的回复,但它仍然覆盖整个屏幕。您还必须将ImageView的布局宽度和布局高度指定为包裹内容或所需大小。并检查图像的大小。使它们足够小,你需要出现,但这样我就失去了使用网格的概念。。。那么为什么不直接使用RelativeLayout呢?有没有一种方法可以将屏幕分割成不同大小的几块,并在每一块中放入一个图像,以便将比率保存在不同的设备上?您能否确认您的图像不够大,无法占据屏幕,因为使用GridLayout,我们只给出行和列,但不对其进行任何限制。因此,如果图像非常大,它将扩散到它的大小。请编辑我的。也看看-