gpt4 book ai didi

android - 适合屏幕的 GridView 中的恒定列数

转载 作者:行者123 更新时间:2023-11-30 03:27:08 26 4
gpt4 key购买 nike

我想在 GridView 中显示一些图像缩略图(图像是正方形的),具有这些限制,即每行恰好显示两个图像并且图像适合屏幕宽度(填充和边距除外)但有最大宽度和高度(例如 1 英寸)
我已阅读问题但无法解决问题。你能帮帮我吗?

GridView xml:

<GridView
android:id="@+id/gridview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:horizontalSpacing="10dp"
android:numColumns="2"
android:scrollbarStyle="outsideOverlay"
android:scrollbars="vertical"
android:stretchMode="columnWidth"
android:verticalScrollbarPosition="right"
android:verticalSpacing="10dp"
android:padding="10dp" />

GridView 项目 xml:

<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/thumbnail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:maxWidth="72pt"
android:maxHeight="72pt"
/>

我添加了两张图片来展示我想要的东西

Grid view in a 4 inches mobile

Grid view in a 7 inches tablet

第一张图片(4 英寸手机)正是我想要的,但是随着屏幕宽度的增加(平板电脑或横向),如图片 2,我想放大图片项目。 (请注意,存在最大宽度尺寸,因此此模式下的结果与图 1 中的手机不同)

最佳答案

您必须自己计算所需的水平间距。

由于结果以像素为单位,并且您可能希望处理实际尺寸(如英寸或 DP),因此您首先需要将约束转换为像素。例如,为了将 DP 转换为像素,请使用:

float px = someDpValue * context.getResources().getDisplayMetrics().density;

然后,您可以使用this method获取 gridView 的大小,然后您将能够进行计算并相应地设置 gridView 及其适配器。

您可能需要设置水平间距和每列的高度。

请注意,如果网格内的 imageViews 将使用非正方形图像,它们将保持纵横比,因此您也必须处理它。您可以使用 center-crop 作为缩放类型,或者只是拉伸(stretch)图像。

关于android - 适合屏幕的 GridView 中的恒定列数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18063771/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com