Android中的Gridview,具有动态宽度和宽度块的高度

时间:2013-05-23 05:13:55

标签: android gridview

我想像GooglePlay一样创建一个Gridview。我们的唯一区别是宽度和宽度的大小。高度应该基于受欢迎程度。

例如,如果我有一个类别的数组列表以及受欢迎的数量。类别的顺序是固定的,因此它将以相同的顺序出现在网格上,唯一的是改变它的宽度和高度。

因此,如果我的网格有2列,则应自动调整块。

我已经看到了stagerred视图的演示,但无法按照我的要求进行复制。所以,如果任何人有任何建议,将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:0)

如果要自动调整块的宽度,则必须获得显示大小。

此代码适用于我。

public static void calculateSize(Activity ac) {
    DisplayMetrics dMetrics = new DisplayMetrics();
    ac.getWindowManager().getDefaultDisplay().getMetrics(dMetrics);
    float density = dMetrics.density;
    int w = Math.round(dMetrics.widthPixels / density);
    int h = Math.round(dMetrics.heightPixels / density);
    YourBlock.WIDTH = Math.round((w - (YourBlock.PADDING * (YourBlock.COLUMN + 1))) / YourBlock.COLUMN);
    YourBlock.HEIGHT = Math.round(YourBlock.WIDTH * YourBlock.RATIO);
}

在这种情况下:

    public static final int YouBlock.COLUMN = 2;
    public static float YourBlock.RATIO = 2.0f/3;
    public static int YouBlock.PADDING = 4;

示例:

enter image description here 每个项目将自动调整每个设备(每个尺寸)的宽度