Android GridView 3 x 6图像裁剪

我想创建一个方形图像的网格,但我无法让图像根据需要显示。 我开始使用GridView教程:

http://developer.android.com/resources/tutorials/views/hello-gridview.html

这似乎接近我想要的。

我能看到的唯一区别是我需要18张图片,并且它们都必须是正方形的。 我将列数设置为3,然后加载18个图像,然后应该是6行。 我希望图像能够完全填充每一行,而不会留下任何不需要的额外大小的空白。 我不知道图像的大小,直到他们被下载到手机。 希望他们几乎是正方形开始,但我需要裁剪中心,使他们完全正方形,然后扩大他们,以充分填补3列。 我需要这些图像来保持它们的高宽比。

我似乎无法找到设置或代码来完成此项工作。 图像重叠,存在空白,不能正确缩放,或者其他问题是错误的。

我得到的最接近的是当我的模拟器设置为480x800时,通过更改GridView教程如下所示:


imageView.setLayoutParams(new GridView.LayoutParams(480/3, 480/3));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(0, 0, 0, 0);
imageView.setAdjustViewBounds(true);

====

< GridView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:numColumns="3" 
    android:stretchMode="columnWidth" 
    android:gravity="fill|clip_horizontal|clip_vertical"
/ > 

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

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

请不要嗤之以鼻。

谢谢。


很明显, CENTRE_CROP是正确的答案,但是你可以上传一张屏幕截图,以便我能够弄清楚并帮助你解决你所面临的问题吗?

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

确保您已将<ImageView>宽度用于特定大小。

对于不同的屏幕尺寸灵活性,我建议你以编程方式获得屏幕宽度,将宽度除以3,然后从中减去一些填充,之后为图像的宽度和高度设置相同的值,这会给你一个方形图像任何屏幕。

链接地址: http://www.djcxy.com/p/31479.html

上一篇: Android GridView 3 x 6 Image Cropping

下一篇: Android tiling a background image: using a Bitmap resizes the image?