千家信息网

怎么在Android中自定义上下左右间隔线

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍了怎么在Android中自定义上下左右间隔线的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么在Android中自定义上下左右间隔线文章都会有所收获,下面
千家信息网最后更新 2026年11月03日怎么在Android中自定义上下左右间隔线

这篇文章主要介绍了怎么在Android中自定义上下左右间隔线的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么在Android中自定义上下左右间隔线文章都会有所收获,下面我们一起来看看吧。

代码如下:

public class SpaceItemDecoration extends RecyclerView.ItemDecoration {  private int space;  Paint mPaint;  public SpaceItemDecoration(int space) {    this.space = space;    mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);    mPaint.setColor(0xffededed);    mPaint.setStyle(Paint.Style.FILL);  }  private static final int HORIZONTAL = 355;  @Override  public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {    int itemViewType = parent.getLayoutManager().getItemViewType(view);    if (itemViewType == HORIZONTAL) { //根据ViewType类型来判断是否展示线      outRect.bottom = space;      if (parent.getChildLayoutPosition(view) % 2 == 0) {        outRect.right = space / 2;        outRect.left = space;      } else {        outRect.right = space;        outRect.left = space / 2;      }    }  }  @Override  public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {    c.save();    if (parent.getLayoutManager() instanceof GridLayoutManager) {      if ((((GridLayoutManager) parent.getLayoutManager())).getSpanCount() == 2) {        draw(c, parent);      }    }    c.restore();  }  //绘制横向 item 分割线  private void draw(Canvas canvas, RecyclerView parent) {    int childSize = parent.getChildCount();    for (int i = 0; i < childSize; i++) {      View child = parent.getChildAt(i);      RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) child.getLayoutParams();      int left = child.getLeft();      int right = child.getRight();      int top = child.getBottom() + layoutParams.bottomMargin;      int bottom = top + space;      if (mPaint != null) {        canvas.drawRect(left, top, right, bottom, mPaint);//绘制图片下放的水平线      }      if (parent.getChildLayoutPosition(child) % 2 == 0) {        canvas.drawRect(0, child.getTop(), left, child.getBottom() + space, mPaint);//绘制左边图片的左间线      }      top = child.getTop();      bottom = child.getBottom() + space;      left = child.getRight() + layoutParams.rightMargin;      right = left + space;      if (mPaint != null) {        canvas.drawRect(left, top, right, bottom, mPaint);//绘制图片的右间线      }    }  }}

使用方法下:

private void initSpaceLine() {    if (decor == null) {      decor = new SpaceItemDecoration(ViewUtil.dp2px(5));      recycleListView.addItemDecoration(decor);    }  }

关于"怎么在Android中自定义上下左右间隔线"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"怎么在Android中自定义上下左右间隔线"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

上下左右 上下 图片 知识 内容 篇文章 代码 价值 使用方法 分割线 操作简单 文章 方法 易懂 更多 横向 水平 水平线 看吧 类型 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云南咖啡 有格互联网科技 科技互联网公司装修 合肥互联网科技公司 互联网 卓越科技 嘟嘟瓜互联网科技 深圳天众互联网科技公司 天速互联网络科技有限公司 成都互联网科技公司100强 昭通云南众福互联网科技有限公司 科技与互联网哪个更好 新兴科技互联网创新大赛颁奖典礼 国大互联网教育科技有限公司工作 本届互联网博览会上的黑科技 河南住房之家互联网科技 互联网科技实习生岗位 2021世界互联网领先科技成果发布 数字互联网科技有限公司 陕西彩京云互联网科技有限公司 互联网科技大会大佬 百单网互联网科技有限公司怎么样 苏州互联网科技贷款公司 互联网金融 科技创新 美国互联网前沿科技 济南和联互联网科技有限公司 宁夏科技产业互联网案例 昭通互联网科技选哪家 济南有互联网科技公司吗 工业互联网山东科技大学 上海京穆互联网科技有限公司
0