【发布时间】:2015-03-27 19:59:20
【问题描述】:
我有 12 张图像,希望以 4 行 3 列的网格显示。
为此,我使用了 GridLayout。
这些图像具有不同的大小,我希望它们能够被缩放,以便每个填充一个单元格,就像线性布局中的权重一样。
我玩过ImageViewsscaleType 和adjustViewBounds 属性,但只有通过手动设置layout_width 和layout_height 才能成功。
这是可能的还是我应该提前调整尺寸?有没有更好的方法可以通过不同的布局实现我的目标?
我正在使用 Android Studio 1.1.0,API 21。
谢谢!
activity_set_background.xml
<?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:id="@+id/ImagesGridLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="3"
android:rowCount="4"
tools:context=".SetBackgroundActivity">
<ImageView
android:id="@+id/background1"
android:layout_gravity="start|top"
android:scaleType="centerInside"
android:adjustViewBounds="true"
android:layout_rowSpan="1"
android:layout_columnSpan="1"
android:src="@drawable/bg1"
android:layout_width="118dp"
android:layout_height="97dp"
android:layout_row="0"
android:layout_column="0" />
<ImageView
android:id="@+id/background2"
android:layout_gravity="left|top"
android:src="@drawable/bg2"
android:layout_width="118dp"
android:layout_height="97dp"
android:layout_row="0"
android:layout_column="1" />
<ImageView
android:id="@+id/background3"
android:layout_gravity="left|top"
android:src="@drawable/bg3"
android:layout_width="118dp"
android:layout_height="97dp"
android:layout_row="0"
android:layout_column="2" />
<ImageView
android:id="@+id/background4"
android:layout_gravity="left|top"
android:src="@drawable/bg4"
android:layout_width="118dp"
android:layout_height="97dp"
android:layout_row="1"
android:layout_column="0" />
<ImageView
android:id="@+id/background5"
android:layout_gravity="left|top"
android:src="@drawable/bg5"
android:layout_width="118dp"
android:layout_height="97dp"
android:layout_row="1"
android:layout_column="1" />
<ImageView
android:id="@+id/background6"
android:layout_gravity="left|top"
android:src="@drawable/bg6"
android:layout_width="118dp"
android:layout_height="97dp"
android:layout_row="1"
android:layout_column="2" />
<ImageView
android:id="@+id/background7"
android:layout_gravity="start|top"
android:scaleType="centerInside"
android:adjustViewBounds="true"
android:layout_rowSpan="1"
android:layout_columnSpan="1"
android:src="@drawable/bg7"
android:layout_row="2"
android:layout_column="0"
android:layout_width="124dp"
android:layout_height="123dp" />
<ImageView
android:id="@+id/background8"
android:layout_gravity="left|top"
android:src="@drawable/bg8"
android:layout_width="131dp"
android:layout_height="108dp"
android:layout_row="2"
android:layout_column="1" />
<ImageView
android:id="@+id/background9"
android:layout_gravity="left|top"
android:src="@drawable/bg9"
android:layout_width="118dp"
android:layout_height="97dp"
android:layout_row="2"
android:layout_column="2" />
<ImageView
android:id="@+id/background10"
android:layout_gravity="left|top"
android:src="@drawable/bg10"
android:layout_width="118dp"
android:layout_height="97dp"
android:layout_row="3"
android:layout_column="0" />
<ImageView
android:id="@+id/background11"
android:layout_gravity="left|top"
android:src="@drawable/bg11"
android:layout_width="118dp"
android:layout_height="97dp"
android:layout_row="3"
android:layout_column="1" />
<ImageView
android:id="@+id/background12"
android:layout_gravity="left|top"
android:src="@drawable/bg12"
android:layout_width="118dp"
android:layout_height="97dp"
android:layout_row="3"
android:layout_column="2" />
【问题讨论】:
-
你看过这个文档吗,它向你展示了如何通过实现 ImageAdapter developer.android.com/guide/topics/ui/layout/gridview.html 来设置宽度和高度
标签: android android-layout android-imageview android-gridlayout