Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

LwkCoder/NineGridView

Open more actions menu

Repository files navigation

NineGridView:九宫格图片显示器

类似微信朋友圈九宫格图片

【不再维护,如有bug、需求,请自行clone源码修改】

2.0.0版本重构后与1.X版本不兼容,请谨慎升级

使用方法:

1.添加Gradle依赖: 【最新版本号以这里为准】

#last-verison请查看上面的最新版本号

dependencies{
         implementation 'com.lwkandroid.library:NineGridView:last-version'
    }

2.相关属性和方法:

        #第一步 设置相关参数或属性        
        //设置图片分割间距,默认8dp,默认对应attr属性中divider_line_size
        mNineGridView.setDividerLineSize(TypedValue.COMPLEX_UNIT_PX,12);
        //设置是否开启编辑模式,默认false,对应attr属性中enable_edit_mode
        mNineGridView.setEnableEditMode(true);
        //设置水平方向上有多少列,默认3,对应attr属性中horizontal_child_count
        mNineGridView.setHorizontalChildCount(4);
        //设置“+”图片,对应attr属性中icon_plus_drawable
        mNineGridView.setIconPlusDrawable(R.drawable.ic_ngv_add_pic);
        //设置“x”图片,对应attr属性中icon_delete_drawable
        mNineGridView.setIconDeleteDrawable(R.drawable.ic_ngv_delete);
        //设置“x”图片尺寸与父容器尺寸的比例,默认0.2f,范围[0,1],对应attr属性中icon_delete_size_ratio
        mNineGridView.setIconDeleteSizeRatio(0.15f);
        //设置非编辑模式下,只有一张图片时的尺寸,默认都为0,当宽高都非0才生效,且不会超过NineGridView内部可用总宽度,对应attr属性中single_image_width、single_image_height
        mNineGridView.setSingleImageSize(TypedValue.COMPLEX_UNIT_DIP,150,200);
  

        #第二步,设置适配器
        //创建图片加载器
        private static class GlideDisplayer2 implements INgvImageLoader<String>
        {
            @Override
            public void load(String source, ImageView imageView, int width, int height)
            {
                Glide.with(imageView.getContext())
                        .load(source)
                        .apply(new RequestOptions().override(width, height))
                        .into(imageView);
            }
        }

        //NineGridView的数据适配器,构造方法中必须设置最大数据容量和图片加载器
        DefaultNgvAdapter<String> ngvAdapter = new DefaultNgvAdapter<>(100, new GlideDisplayer2());
        //设置点击事件
        ngvAdapter.setOnChildClickListener(new DefaultNgvAdapter.OnChildClickedListener<String>()
        {

            @Override
            public void onPlusImageClicked(ImageView plusImageView, int dValueToLimited)
            {
               //点击“+”号图片后的回调
               //plusImageView代表“+”号图片对象,dValueToLimited代表当前可继续添加的图片数量
            }

            @Override
            public void onContentImageClicked(int position, ImageBean data, NgvChildImageView childImageView)
            {
                //点击图片时的回调
            }

            @Override
            public void onImageDeleted(int position, ImageBean data)
            {
                //点击删除按钮后的回调
                                //内部执行完删除后才回调,开发者无需处理删除逻辑
            }
          
        });

         #第三步,关联适配器
         mNineGridView.setAdapter(ngvAdapter);

效果图:


混淆配置:

无需额外混淆配置

About

Android九宫格图片展示器,类似微信,带编辑功能

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.