AndroidStudio中GlideImageView元素之间的间隔问题
创始人
2024-08-20 22:30:05
0

使用RecyclerView和GridLayoutManager布局以及设置ItemDecoration实现ImageView元素之间的间隔。

步骤如下:

  1. 在布局文件中添加RecyclerView:

  1. 在Activity或Fragment中初始化RecyclerView:
RecyclerView recyclerView = findViewById(R.id.recyclerView);
GridLayoutManager layoutManager = new GridLayoutManager(this, 2);
recyclerView.setLayoutManager(layoutManager);
MyAdapter adapter = new MyAdapter(imageList);
recyclerView.setAdapter(adapter);
recyclerView.addItemDecoration(new GridSpacingItemDecoration(2, 16, true));

其中,“2”表示列数,即每行显示几个ImageView元素,“16”表示间隔大小,可以根据实际情况设置。

  1. 创建GridSpacingItemDecoration类:
public class GridSpacingItemDecoration extends RecyclerView.ItemDecoration {
 
    private final int spanCount;
    private final int spacing;
    private final boolean includeEdge;
 
    public GridSpacingItemDecoration(int spanCount, int spacing, boolean includeEdge) {
        this.spanCount = spanCount;
        this.spacing = spacing;
        this.includeEdge = includeEdge;
    }
 
    @Override
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
        int position = parent.getChildAdapterPosition(view); // item position
        int column = position % spanCount; // item column
 
        if (includeEdge) {
            outRect.left = spacing - column * spacing / spanCount; // spacing - column * ((1f / spanCount) * spacing)
            outRect.right = (column + 1) * spacing / spanCount; // (column + 1) * ((1f / spanCount) * spacing)
 
            if (position < spanCount) { // top edge
                outRect.top = spacing;
            }
            outRect.bottom = spacing; // item bottom
        } else {
            outRect.left = column * spacing / spanCount; // column * ((1f / spanCount) * spacing)
            outRect.right = spacing - (column + 1) * spacing / spanCount; // spacing - (column + 1) * ((1f /    spanCount) * spacing)
            if (position >= spanCount) {
                outRect.top = spacing; // item top
            }
        }
    }
}
  1. 创建MyAdapter类并在其中使用Glide加载图片:
public class MyAdapter extends RecyclerView.Adapter {
 
    private final List imageList;
 

相关内容

热门资讯

科技分享!德普之星辅助软件(辅... 科技分享!德普之星辅助软件(辅助挂)本来存在有挂(有挂方式辅助脚本)1、实时透视辅助更新:用户可以随...
来一盘!we poker辅助器... 来一盘!we poker辅助器v3.3(辅助挂)本来是真的有挂(有挂分享辅助插件)1)有没有挂:进一...
一分钟教会你!hh poker... 一分钟教会你!hh poker辅助器先试用(辅助挂)好像真的是有挂(有挂总结辅助app)1)辅助插件...
热点推荐!wepoker有人用... 热点推荐!wepoker有人用过吗(辅助挂)其实是真的有挂(真的有挂辅助教程)1、免费辅助多个强度级...
技术分享!哈糖大菠萝辅助器(辅... 技术分享!哈糖大菠萝辅助器(辅助挂)总是真的有挂(有人有挂辅助工具)是不是有人用挂微扑克wpk插件教...
必备攻略!拱趴大菠萝辅助神器(... 必备攻略!拱趴大菠萝辅助神器(辅助挂)一直是有挂(有挂方法辅助教程)1、超多福利:超高返利,海量正版...
揭秘真相!wpk辅助软件(辅助... 揭秘真相!wpk辅助软件(辅助挂)切实真的是有挂(有挂讲解辅助app)1、完成辅助器v3.3的残局,...
玩家亲测!pokemmo辅助器... 玩家亲测!pokemmo辅助器手机版下载(辅助挂)总是是有挂(有挂技巧辅助软件)进入游戏-大厅左侧-...
科技揭秘!hhpoker脚本下... 科技揭秘!hhpoker脚本下载(辅助挂)真是是有挂(有挂方法辅助工具)1、每一步都需要思考,不同水...
关于!wepoker安装教程(... 关于!wepoker安装教程(辅助挂)确实真的是有挂(新版有挂辅助软件)1、模拟器是什么优化,俱乐部...