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