0

我在 Android 中有一个 GridView,它的对象在屏幕旋转期间会改变大小。我也希望对象之间没有间隙。我希望每个视图都在 150-200dp 左右。

起初,我想我可以只获取屏幕总宽度 ( int totalWidth = getWindowManager().getDefaultDisplay().getWidth();) 并使用类似m_IconSize = Math.min(totalWidth / 4, 175);获取最大图标大小的东西,然后使用gridView.setNumColumns(totalWidth / m_IconSize);.

但是,对于高密度分辨率或水平方向,它将始终默认为 175,这不是宽度的一个因素,并且在 GridView 中的每个对象之间会有间隙。我怎样才能使它无间隙?

4

1 回答 1

0

嗯,很明显,在横向中它将大于 175(任何超过 700 像素的屏幕都可以),因此将应用 175。在更一般的说明中,您永远不应该使用固定的像素大小,在您的 dimens.xml 中创建一个条目然后读取它int pixels = getResources().getDimensionPixelSize(R.dimen.whatever);,但这只会调整密度,而不是水平空间。

听起来您应该尝试找到可以容纳的近似大小的最大图标数,然后使用该大小,而不是总是尝试使用 4。

于 2013-05-11T18:22:41.047 回答