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 件のコメント:
コメントを投稿