最简单的方法

1.在GridView里设置一些属性

android:background="#000000"             背景色黑色

android:horizontalSpacing="1sp"           水平间距1sp

 android:verticalSpacing="1sp"               垂直间距1sp

android:padding="1sp"                             与里面的内容间隔1sp

2.在GridView的Adapter的布局里设置一些属性

android:background="#ffffff“

这样就实现表格的布局样式了



import hy.mingancai.tongqutang.R; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.util.AttributeSet; import android.view.View; import android.widget.GridView; public class LineGridView extends GridView {     public LineGridView(Context context) {         super(context);         // TODO Auto-generated constructor stub     }     public LineGridView(Context context, AttributeSet attrs) {         super(contextattrs);     }     public LineGridView(Context context, AttributeSet attrsint defStyle) {         super(contextattrsdefStyle);     }     @Override     protected void dispatchDraw(Canvas canvas) {         super.dispatchDraw(canvas);         // 第一个视图         View localView1 = getChildAt(0);         // 列数         int column = getWidth() / localView1.getWidth();         // 孩子数         int childCount = getChildCount();         Paint localPaint;         localPaint = new Paint();         localPaint.setStyle(Paint.Style.STROKE);         localPaint.setColor(getContext().getResources().getColor(R.color.main));         for (int i = 0; i < childCounti++) {             View cellView = getChildAt(i);             if ((i + 1) % column == 0) {                 canvas.drawLine(cellView.getLeft(), cellView.getBottom(), cellView.getRight(), cellView.getBottom(), localPaint);             } else if ((i + 1) > (childCount - (childCount % column))) {                 canvas.drawLine(cellView.getRight(), cellView.getTop(), cellView.getRight(), cellView.getBottom(), localPaint);             } else {                 canvas.drawLine(cellView.getRight(), cellView.getTop(), cellView.getRight(), cellView.getBottom(), localPaint);                 canvas.drawLine(cellView.getLeft(), cellView.getBottom(), cellView.getRight(), cellView.getBottom(), localPaint);             }         }         if (childCount % column != 0) {             for (int j = 0; j < (column - childCount % column); j++) {                 View lastView = getChildAt(childCount - 1);                 canvas.drawLine(lastView.getRight() + lastView.getWidth() * jlastView.getTop(), lastView.getRight() + lastView.getWidth() * jlastView.getBottom(), localPaint);             }         }     } }


这样也可以,不过这个实现的效果是表格的最外层没线条

更多相关文章

  1. Android(安卓)关机、重启、recovery流程分析
  2. Android中检测手机制式和移动网络类型
  3. Android中滑屏初探 ---- scrollTo 以及 scrollBy方法使用说明
  4. Activity 属性设置参数说明
  5. android 查看解压后的.xml文件代码(axmlprinter2)
  6. Android(安卓)Pull解析
  7. AMD windows7安装和打开genymotion、android studio遇到的问题
  8. android textview设置字体的行距和字间距
  9. android 自定义Dialog(背景图等)

随机推荐

  1. Android四大组件生命周期,组件类的继承与
  2. Android的ImageView如何maxHeight与maxWi
  3. Android(安卓)如何监听返回键,弹出一个退
  4. android自动化测试--monkey runner
  5. python logging 模块(一)
  6. MaterialDesign初探-Theme
  7. Android(安卓)Studio 下载与安装教程(最简
  8. Android开发之ListView详解 以及简单的li
  9. Android中的消息通知-Toast和Notificatio
  10. Android应用开发学习笔记之播放视频