首页 文章

Android GridView 3 x 6图像裁剪

提问于
浏览
4

我想创建一个方形图像网格,但我无法让图像显示为我需要的 . 我从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以外的东西?有什么建议?

请不要嗤之以鼻 .

谢谢 .

1 回答

  • 0

    显然 CENTRE_CROP 是正确的答案,但是你可以上传截图,以便我能解决它并帮助你解决你所面临的问题吗?

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

    确保已使用 <ImageView> 宽度到特定大小 .

    对于不同的屏幕大小灵活性,我建议你得到屏幕 width programmatically ,将宽度除以3并从中扣除一些填充,然后为图像的宽度和高度设置 same 值,这将为您提供任何方块图像屏幕 .

相关问题