2014年12月8日月曜日

[安藤]android GridLayout + image view 等分/均分



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

コメントを投稿