我想像 GooglePlay 一样创建一个 Gridview。在我们的案例中,唯一的区别是宽度和高度的大小应该基于受欢迎程度。
例如,如果我有一个类别的数组列表以及受欢迎程度。类别的顺序是固定的,所以它会以相同的顺序出现在网格上,唯一的事情就是改变它的宽度和高度。
所以,如果我的网格有 2 列,那么应该自动调整块。
我已经看过 stagerred 视图的演示,但无法按照我的要求进行复制。因此,如果有人有任何建议,我们将不胜感激。
谢谢
如果你想自动调整你的块的宽度,你必须得到显示大小。
这段代码对我有用。
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;
例子:
每个项目将自动调整每个设备的宽度(每个尺寸)