gridview xian

来源:互联网 发布:java excel 合并 编辑:程序博客网 时间:2024/05/01 08:53
public class MyGridView extends GridView {    public MyGridView(Context context) {        super(context);    }    public MyGridView(Context context, AttributeSet attrs) {        super(context, attrs);    }    public MyGridView(Context context, AttributeSet attrs, int defStyle) {        super(context, attrs, defStyle);    }    private int rownum;    @Override    protected void onDraw(Canvas canvas) {        super.onDraw(canvas);        int colnum = getNumColumns(); //获取列数        int total = getChildCount();  //获取Item总数        //计算行数        if (total % colnum == 0) {            rownum = total / colnum;        } else {            rownum = (total / colnum) + 1; //当余数不为0时,要把结果加上1        }        Paint localPaint; //设置画笔        localPaint = new Paint();        localPaint.setStyle(Paint.Style.STROKE); //画笔实心        localPaint.setColor(getContext().getResources().getColor(R.color.colorAccent));//画笔颜色        View view0 = getChildAt(0); //第一个view        View viewColLast = getChildAt(colnum - 1);//第一行最后一个view        View viewRowLast = getChildAt((rownum - 1) * colnum); //第一列最后一个view        for (int i = 1, c = 1; i < rownum || c < colnum; i++, c++) {            //画横线            canvas.drawLine(view0.getLeft(), view0.getBottom() * i, viewColLast.getRight(), viewColLast.getBottom() * i, localPaint);            //画竖线            canvas.drawLine(view0.getRight() * c, view0.getTop(), viewRowLast.getRight() * c, viewRowLast.getBottom(), localPaint);        }    }}