GridLayout 可以方便的拿來作方格狀的佈局。但是... GridLayout本身的margin卻無法自動等分。只好自己diy。
使用限制:
grid裡面的view假設都是相同大小。
int columnCount = 3; //看想要橫排幾個都可以。
gl = new GridLayout(context);
contentView = gl;
gl.setColumnCount(columnCount);
gl.setOrientation(GridLayout.HORIZONTAL);
gl.setUseDefaultMargins(false);
gl.setBackgroundResource(R.color.white);
int imageViewMargin = 50; //隨你高興要讓等分的間隔多寬。
for (int i = 0; i < [items]; i++) //item數量可變
{
ImageView iv = new ImageView(context);
GridLayout.LayoutParams lp = new GridLayout.LayoutParams();
lp.width = Double.valueOf((res.getDisplayMetrics().widthPixels - (imageViewMargin * (columnCount + 1))) / columnCount).intValue();
lp.height = lp.width;
lp.setMargins(imageViewMargin, imageViewMargin, 0, 0); //只設左跟上方的margin即可
iv.setLayoutParams(lp);
gl.addView(iv);
}
0 件のコメント:
コメントを投稿