【问题标题】:Android GridView 3 x 6 Image CroppingAndroid GridView 3 x 6 图像裁剪
【发布时间】: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); ==== &lt 网格视图 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_horizo​​ntal|clip_vertical" //

这几乎是正确的。我正在使用的方形测试图像缺少几个像素,非方形图像没有被裁剪,而是用黑框填充以保留比例,并且硬编码值很脆弱,不适用于所有手机、方向或布局。我觉得有趣的是 CENTER_CROP 文档似乎声称它将通过扩展以适合图像来完成我想要的操作,但似乎是 CENTER_INSIDE。

我感觉很接近,但从来没有完全得到我想要的。也许我应该使用 GridView 以外的东西?有什么建议?

请不要恶作剧。

谢谢。

【问题讨论】:

标签: android image gridview scale


【解决方案1】:

显然CENTRE_CROP 是正确答案,但您能否上传屏幕截图以便我弄清楚并帮助您解决您面临的问题?

另外我建议你上传item_layout xml文件。

确保您已将<ImageView> 宽度设置为特定大小。

对于不同的屏幕尺寸灵活性,我建议您以编程方式获取屏幕宽度,将宽度除以3并从中减去一些填充,然后设置相同图像宽度和高度的值,这将在任何屏幕上为您提供方形图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    • 2015-02-02
    • 1970-01-01
    • 2018-09-20
    • 2011-11-15
    • 1970-01-01
    相关资源
    最近更新 更多