百度怎么建网站苏州园区已经烂掉了
本篇文章主要讲解的是有关RecyclerView下划线的使用,主要有几个方法,具体如下:
第一种方式:网格分割线
public class GridDivider extends RecyclerView.ItemDecoration {
        private Drawable mDividerDarwable;
         private int mDividerHight = 1;
         private Paint mColorPaint;
         public final int[] ATRRS = new int[]{android.R.attr.listDivider};
        public GridDivider(Context context) {
             final TypedArray ta = context.obtainStyledAttributes(ATRRS);
             this.mDividerDarwable = ta.getDrawable(0);
             ta.recycle();
         }
        /*
          int dividerHight  分割线的线宽
          int dividerColor  分割线的颜色
          */
         public GridDivider(Context context, int dividerHight, int dividerColor) {
             this(context);
             mDividerHight = dividerHight;
             mColorPaint = new Paint();
             mColorPaint.setColor(dividerColor);
         }
        /*
          int dividerHight  分割线的线宽
          Drawable dividerDrawable  图片分割线
          */
         public GridDivider(Context context, int dividerHight, Drawable dividerDrawable) {
             this(context);
             mDividerHight = dividerHight;
             mDividerDarwable = dividerDrawable;
         }
        @Override
         public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
             super.onDraw(c, parent, state);
             //画水平和垂直分割线
             drawHorizontalDivider(c, parent);
             drawVerticalDivider(c, parent);
         }
        public void drawVerticalDivider(Canvas c, RecyclerView parent) {
             final int childCount = parent.getChildCount();
             for (int i = 0; i < childCount; i++) {
                 final View child = parent.getChildAt(i);
                 final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();
                final int top = child.getTop() - params.topMargin;
                 final int bottom = child.getBottom() + params.bottomMargin;
                int left = 0;
                 int right = 0;
                //左边第一列
                 if ((i % 3) == 0) {
                     //item左边分割线
                     left = child.getLeft();
                     right = left + mDividerHight;
                     mDividerDarwable.setBounds(left, top, right, bottom);
                     mDividerDarwable.draw(c);
                     if (mColorPaint != null) {
                         c.drawRect(left, top, right, bottom, mColorPaint);
                     }
                     //item右边分割线
                     left = child.getRight() + params.rightMargin - mDividerHight;
                     right = left + mDividerHight;
                 } else {
                     //非左边第一列
                     left = child.getRight() + params.rightMargin - mDividerHight;
                     right = left + mDividerHight;
                 }
                 //画分割线
                 mDividerDarwable.setBounds(left, top, right, bottom);
                 mDividerDarwable.draw(c);
                 if (mColorPaint != null) {
                     c.drawRect(left, top, right, bottom, mColorPaint);
                 }
            }
         }
public void drawHorizontalDivider(Canvas c, RecyclerView parent) {
            final int childCount = parent.getChildCount();
             for (int i = 0; i < childCount; i++) {
                 final View child = parent.getChildAt(i);
                 RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();
                final int left = child.getLeft() - params.leftMargin - mDividerHight;
                 final int right = child.getRight() + params.rightMargin;
                 int top = 0;
                 int bottom = 0;
                // 最上面一行
                 if ((i / 3) == 0) {
                     //当前item最上面的分割线
                     top = child.getTop();
                     //当前item下面的分割线
                     bottom = top + mDividerHight;
                     mDividerDarwable.setBounds(left, top, right, bottom);
                     mDividerDarwable.draw(c);
                     if (mColorPaint != null) {
                         c.drawRect(left, top, right, bottom, mColorPaint);
                     }
                     top = child.getBottom() + params.bottomMargin;
                     bottom = top + mDividerHight;
                 } else {
                     top = child.getBottom() + params.bottomMargin;
                     bottom = top + mDividerHight;
                 }
                 //画分割线
                 mDividerDarwable.setBounds(left, top, right, bottom);
                 mDividerDarwable.draw(c);
                 if (mColorPaint != null) {
                     c.drawRect(left, top, right, bottom, mColorPaint);
                 }
             }
         }
     }
第二种方式,水平下划线
第一种:
public class GridDivider extends RecyclerView.ItemDecoration {
        private Drawable mDividerDarwable;
         private int mDividerHight = 1;
         private Paint mColorPaint;
         public final int[] ATRRS = new int[]{android.R.attr.listDivider};
        public GridDivider(Context context) {
             final TypedArray ta = context.obtainStyledAttributes(ATRRS);
             this.mDividerDarwable = ta.getDrawable(0);
             ta.recycle();
         }
        /*
          int dividerHight  分割线的线宽
          int dividerColor  分割线的颜色
          */
         public GridDivider(Context context, int dividerHight, int dividerColor) {
             this(context);
             mDividerHight = dividerHight;
             mColorPaint = new Paint();
             mColorPaint.setColor(dividerColor);
         }
        /*
          int dividerHight  分割线的线宽
          Drawable dividerDrawable  图片分割线
          */
         public GridDivider(Context context, int dividerHight, Drawable dividerDrawable) {
             this(context);
             mDividerHight = dividerHight;
             mDividerDarwable = dividerDrawable;
         }
        @Override
         public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
             super.onDraw(c, parent, state);
             //画水平和垂直分割线
             drawHorizontalDivider(c, parent);
             drawVerticalDivider(c, parent);
         }
        public void drawVerticalDivider(Canvas c, RecyclerView parent) {
             final int childCount = parent.getChildCount();
             for (int i = 0; i < childCount; i++) {
                 final View child = parent.getChildAt(i);
                 final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();
                final int top = child.getTop() - params.topMargin;
                 final int bottom = child.getBottom() + params.bottomMargin;
                int left = 0;
                 int right = 0;
                //左边第一列
                 if ((i % 3) == 0) {
                     //item左边分割线
                     left = child.getLeft();
                     right = left + mDividerHight;
                     mDividerDarwable.setBounds(left, top, right, bottom);
                     mDividerDarwable.draw(c);
                     if (mColorPaint != null) {
                         c.drawRect(left, top, right, bottom, mColorPaint);
                     }
                     //item右边分割线
                     left = child.getRight() + params.rightMargin - mDividerHight;
                     right = left + mDividerHight;
                 } else {
                     //非左边第一列
                     left = child.getRight() + params.rightMargin - mDividerHight;
                     right = left + mDividerHight;
                 }
                 //画分割线
                 mDividerDarwable.setBounds(left, top, right, bottom);
                 mDividerDarwable.draw(c);
                 if (mColorPaint != null) {
                     c.drawRect(left, top, right, bottom, mColorPaint);
                 }
            }
         }
public void drawHorizontalDivider(Canvas c, RecyclerView parent) {
            final int childCount = parent.getChildCount();
             for (int i = 0; i < childCount; i++) {
                 final View child = parent.getChildAt(i);
                 RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();
                final int left = child.getLeft() - params.leftMargin - mDividerHight;
                 final int right = child.getRight() + params.rightMargin;
                 int top = 0;
                 int bottom = 0;
                // 最上面一行
                 if ((i / 3) == 0) {
                     //当前item最上面的分割线
                     top = child.getTop();
                     //当前item下面的分割线
                     bottom = top + mDividerHight;
                     mDividerDarwable.setBounds(left, top, right, bottom);
                     mDividerDarwable.draw(c);
                     if (mColorPaint != null) {
                         c.drawRect(left, top, right, bottom, mColorPaint);
                     }
                     top = child.getBottom() + params.bottomMargin;
                     bottom = top + mDividerHight;
                 } else {
                     top = child.getBottom() + params.bottomMargin;
                     bottom = top + mDividerHight;
                 }
                 //画分割线
                 mDividerDarwable.setBounds(left, top, right, bottom);
                 mDividerDarwable.draw(c);
                 if (mColorPaint != null) {
                     c.drawRect(left, top, right, bottom, mColorPaint);
                 }
             }
         }
     }
第二种:
public class GridDivider extends RecyclerView.ItemDecoration {
        private Drawable mDividerDarwable;
         private int mDividerHight = 1;
         private Paint mColorPaint;
         public final int[] ATRRS = new int[]{android.R.attr.listDivider};
        public GridDivider(Context context) {
             final TypedArray ta = context.obtainStyledAttributes(ATRRS);
             this.mDividerDarwable = ta.getDrawable(0);
             ta.recycle();
         }
        /*
          int dividerHight  分割线的线宽
          int dividerColor  分割线的颜色
          */
         public GridDivider(Context context, int dividerHight, int dividerColor) {
             this(context);
             mDividerHight = dividerHight;
             mColorPaint = new Paint();
             mColorPaint.setColor(dividerColor);
         }
        /*
          int dividerHight  分割线的线宽
          Drawable dividerDrawable  图片分割线
          */
         public GridDivider(Context context, int dividerHight, Drawable dividerDrawable) {
             this(context);
             mDividerHight = dividerHight;
             mDividerDarwable = dividerDrawable;
         }
        @Override
         public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
             super.onDraw(c, parent, state);
             //画水平和垂直分割线
             drawHorizontalDivider(c, parent);
             drawVerticalDivider(c, parent);
         }
        public void drawVerticalDivider(Canvas c, RecyclerView parent) {
             final int childCount = parent.getChildCount();
             for (int i = 0; i < childCount; i++) {
                 final View child = parent.getChildAt(i);
                 final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();
                final int top = child.getTop() - params.topMargin;
                 final int bottom = child.getBottom() + params.bottomMargin;
                int left = 0;
                 int right = 0;
                //左边第一列
                 if ((i % 3) == 0) {
                     //item左边分割线
                     left = child.getLeft();
                     right = left + mDividerHight;
                     mDividerDarwable.setBounds(left, top, right, bottom);
                     mDividerDarwable.draw(c);
                     if (mColorPaint != null) {
                         c.drawRect(left, top, right, bottom, mColorPaint);
                     }
                     //item右边分割线
                     left = child.getRight() + params.rightMargin - mDividerHight;
                     right = left + mDividerHight;
                 } else {
                     //非左边第一列
                     left = child.getRight() + params.rightMargin - mDividerHight;
                     right = left + mDividerHight;
                 }
                 //画分割线
                 mDividerDarwable.setBounds(left, top, right, bottom);
                 mDividerDarwable.draw(c);
                 if (mColorPaint != null) {
                     c.drawRect(left, top, right, bottom, mColorPaint);
                 }
            }
         }
public void drawHorizontalDivider(Canvas c, RecyclerView parent) {
            final int childCount = parent.getChildCount();
             for (int i = 0; i < childCount; i++) {
                 final View child = parent.getChildAt(i);
                 RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();
                final int left = child.getLeft() - params.leftMargin - mDividerHight;
                 final int right = child.getRight() + params.rightMargin;
                 int top = 0;
                 int bottom = 0;
                // 最上面一行
                 if ((i / 3) == 0) {
                     //当前item最上面的分割线
                     top = child.getTop();
                     //当前item下面的分割线
                     bottom = top + mDividerHight;
                     mDividerDarwable.setBounds(left, top, right, bottom);
                     mDividerDarwable.draw(c);
                     if (mColorPaint != null) {
                         c.drawRect(left, top, right, bottom, mColorPaint);
                     }
                     top = child.getBottom() + params.bottomMargin;
                     bottom = top + mDividerHight;
                 } else {
                     top = child.getBottom() + params.bottomMargin;
                     bottom = top + mDividerHight;
                 }
                 //画分割线
                 mDividerDarwable.setBounds(left, top, right, bottom);
                 mDividerDarwable.draw(c);
                 if (mColorPaint != null) {
                     c.drawRect(left, top, right, bottom, mColorPaint);
                 }
             }
         }
     }
以上就是今天主要分享的内容,希望对广大网友有所帮助。
