千家信息网

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

发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,这篇文章主要介绍了怎么在Android中自定义上下左右间隔线的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么在Android中自定义上下左右间隔线文章都会有所收获,下面
千家信息网最后更新 2025年11月13日怎么在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安全错误 数据库的锁怎样保障安全 乌鲁木齐外卖网络技术 上海汇智网络技术有限公司 数据库用什么做搜索引擎 互联网科技与政府治理社科院 网络安全班队课说课稿 jboss的数据库连接池 服务器中心密码忘了怎么办 服务器没问题虚拟机没起来 七财互联网络科技有限公司 神武未能连接服务器 邢台财务软件开发团队 梅花视频软件开发 常州参考软件开发销售 县网络安全宣传周方案 sql文件还原数据库 cad是用什么软件开发的 千峰互联网科技公司 网络技术硕士面试 郑州智慧安全文化展厅软件开发 曙光服务器a440-g内存条 串口服务器可以监控两台吗 金融行业数据库面试 保护支付宝网络安全的是谁 网络安全人人有责口号 软件开发人员 评估表格 怎么建立单位人员信息数据库 未来之役进不了服务器 青浦区创新软件开发常见问题 普洱软件开发招聘 软件开发那所大学最好
0