我是Android开发的新手,我正在尝试使用GridLayout创建包含3列的行,每列都有一个imageview。在这种情况下,我使用在photoshop中创建的方形图像,全部为红色,仅用于测试。
这是我目前使用的xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:id="@+id/activity_menu"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="me.andrewlarsen.testapp.MenuActivity">
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:rowCount="2"
android:columnCount="3"
android:gravity="center"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true">
<ImageView
android:layout_gravity="fill"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@mipmap/redblock"
android:layout_row="0"
android:layout_column="0"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:scaleType="fitXY"
android:id="@+id/imageView1" />
<ImageView
android:layout_gravity="fill"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@mipmap/redblock"
android:layout_row="0"
android:layout_column="1"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:scaleType="fitXY"
android:id="@+id/imageView2" />
<ImageView
android:layout_gravity="fill"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@mipmap/redblock"
android:layout_row="0"
android:layout_column="2"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:scaleType="fitXY"
android:id="@+id/imageView3" />
<ImageView
android:layout_gravity="fill"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@mipmap/redblock"
android:layout_row="1"
android:layout_column="0"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:id="@+id/imageView4" />
<ImageView
android:layout_gravity="fill"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@mipmap/redblock"
android:layout_row="1"
android:layout_column="1"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:id="@+id/imageView5" />
<ImageView
android:layout_gravity="fill"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@mipmap/redblock"
android:layout_row="1"
android:layout_column="2"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:id="@+id/imageView6" />
</GridLayout>
</RelativeLayout>
上面的xml给出的结果如下所示:
所以你可以看到我有2行,这是彼此不同的。在第一行的所有3列中,我添加了 android:scaleType =“fitXY”但是它只是水平缩放,而不是垂直缩放。
我希望它在两个方向上向上扩展,因此结果将是一个更大的正方形。
我试图让它看起来像这样:
当我使用android:scaleType =“fitXY”时,我希望图像在X方向(水平方向)和Y方向(垂直方向)上都可以放大,但不会这样做。
感谢我能得到的所有帮助。
答案 0 :(得分:1)
问题解决了,不得不使用:
android:adjustViewBounds="true"
每个imageview元素中的
答案 1 :(得分:0)
尝试删除权重(android:layout_columnWeight =“1”和android:layout_rowWeight =“1”),你的redblock的大小是多少?如果可能的话发送你的图片。