【发布时间】:2011-07-16 06:40:43
【问题描述】:
我想创建一个方形图像网格,但我无法让图像按我的需要显示。我从 GridView 教程开始:
http://developer.android.com/resources/tutorials/views/hello-gridview.html
这似乎接近我想要的。
我能看到的唯一区别是我只需要 18 张图片,而且它们都需要是正方形的。我将列数设置为 3,然后加载 18 张图像,它们应该是 6 行。我希望图像完全填满每一行,并且不会留下任何不需要的额外大小的间隙。在将图像下载到手机之前,我不知道图像的大小。希望它们一开始几乎是正方形的,但我需要裁剪中心以使它们完全正方形,然后缩放它们以完全填充 3 列。我需要图像来保持它们的纵横比。
我似乎找不到设置或代码来完成这项工作。图像重叠、有间隙、无法正确缩放或其他错误。
当我的模拟器设置为 480x800 时,我得到的最接近的方法是更改 GridView 教程,如下所示:
imageView.setLayoutParams(新 GridView.LayoutParams(480/3, 480/3)); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); imageView.setPadding(0, 0, 0, 0); imageView.setAdjustViewBounds(true); ==== < 网格视图 xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gridview" android:layout_width="fill_parent" android:layout_height="fill_parent" 机器人:numColumns =“3” android:stretchMode="columnWidth" android:gravity="填充|clip_horizontal|clip_vertical" //这几乎是正确的。我正在使用的方形测试图像缺少几个像素,非方形图像没有被裁剪,而是用黑框填充以保留比例,并且硬编码值很脆弱,不适用于所有手机、方向或布局。我觉得有趣的是 CENTER_CROP 文档似乎声称它将通过扩展以适合图像来完成我想要的操作,但似乎是 CENTER_INSIDE。
我感觉很接近,但从来没有完全得到我想要的。也许我应该使用 GridView 以外的东西?有什么建议?
请不要恶作剧。
谢谢。
【问题讨论】:
标签: android image gridview scale