【问题标题】:Fit ImageViews into Android GridLayout使 ImageViews 适合 Android GridLayout
【发布时间】:2021-10-12 13:26:50
【问题描述】:

我需要将 4 张图片放入 GridLayout。如果我硬编码定义它们的尺寸。

例如

android:layout_width="150dp"
android:layout_height="200dp"

它工作正常。 但我的问题是,是否可以在不定义尺寸的情况下做到这一点? 同时我已经尝试过:

<GridLayout
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:layout_margin="16dp"
    android:columnCount="2"
    android:orientation="horizontal"
    android:useDefaultMargins="true"
    app:layout_constraintTop_toBottomOf="@+id/top_object"
    app:layout_constraintBottom_toTopOf="@+id/bottom_object"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:src="@drawable/poster_21"
            android:scaleType="centerCrop"/>

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:src="@drawable/poster_22"
            android:scaleType="centerCrop"/>

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:src="@drawable/poster_23"
            android:scaleType="centerCrop"/>

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:src="@drawable/poster_24"
            android:scaleType="centerCrop"/>

  </GridLayout>

但在这种情况下,我的左上角图像占据了整个网格布局,另外 3 个图像具有相同的大小并且位于屏幕之外。

【问题讨论】:

  • 嗨@ilya,你能解释一下吗,你希望你的图片看起来像什么?
  • 嗨 Mouaad,我希望这 4 个图像对称地位于中心

标签: android xml android-layout grid-layout android-gridlayout


【解决方案1】:

您可以为每个GridLayout 元素使用0dp 宽度和高度,即ImageView

并使用列和行权重控制宽度和高度

<?xml version="1.0" encoding="utf-8"?>
<GridLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:grid="http://schemas.android.com/apk/tools"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:layout_margin="16dp"
    android:useDefaultMargins="true"
    android:layout_constraintTop_toBottomOf="@+id/top_object"
    android:layout_constraintBottom_toTopOf="@+id/bottom_object"
    android:layout_constraintLeft_toLeftOf="parent"
    android:layout_constraintRight_toRightOf="parent"     
    android:columnCount="2">

    <ImageView
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:scaleType="centerCrop"
        android:src="@drawable/poster_21"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        grid:layout_gravity="center" />

    <ImageView
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:scaleType="centerCrop"
        android:src="@drawable/poster_22"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        grid:layout_gravity="center" />

    <ImageView
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:scaleType="centerCrop"
        android:src="@drawable/poster_23"
        android:text="item 0x2"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        grid:layout_gravity="center" />


    <ImageView
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:scaleType="centerCrop"
        android:src="@drawable/poster_24"
        android:text="item 1x0"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        grid:layout_gravity="center" />

</GridLayout>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多