0

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

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

所以,如果我的网格有 2 列,那么应该自动调整块。

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

谢谢

4

1 回答 1

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;

例子:

在此处输入图像描述 每个项目将自动调整每个设备的宽度(每个尺寸)

于 2013-05-23T05:59:56.870 回答