欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android 图片网格布局控件示例代码

程序员文章站 2022-06-11 09:33:33
项目地址:multipictureview multipictureview是一个可以将多张图片以网格的方式显示的view,通过简单的接口实现烦人的布局,从此解放你的小手...

项目地址:multipictureview

multipictureview是一个可以将多张图片以网格的方式显示的view,通过简单的接口实现烦人的布局,从此解放你的小手手

显示效果

  1. 支持设置图片数量上限
  2. 支持设置最多显示列数
  3. 支持动态布局和静态布局两种模式(见下图)
  4. 支持编辑模式和展示模式(编辑模式可以增加和删除图片)

布局方式

Android 图片网格布局控件示例代码

动态布局

Android 图片网格布局控件示例代码

静态布局

编辑/显示模式

Android 图片网格布局控件示例代码Android 图片网格布局控件示例代码

如何使用

1. 在布局中声明

<com.goyourfly.multi_picture.multipictureview
  android:id="@+id/multi_image_view"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  app:editable="false"
  app:deletedrawable="@drawable/..."
  app:adddrawable="@drawable/..."
  app:imagelayoutmode="dynamic"
  app:max="9"
  app:space="6dp"
  app:span="3" />

参数 类型 说明 默认值
editable boolean 是否可编辑(添加和删除) false
span integer 每行最多显示多少 3
space dimension 图片间隔大小 8dp
max integer 最多显示多少张图片 9
imagelayoutmode integer 图片布局类型:动态(dynamic=1)和静态(static=2) static=2
deletedrawable drawable 删除图标 红色删除drawable
adddrawable drawable 添加图片 灰色添加图片drawable

2. 在代码中使用

2.1 初始化imageloader

multipictureview.setimageloader(object : imageloader {
  override fun loadimage(image: imageview, uri: uri) {
    vincent.with(image.context)
        .load(uri)
        .placeholder(r.drawable.ic_placeholder_loading)
        .error(r.drawable.ic_placeholder_loading)
        .into(image)
  }
})

2.2 绑定图片资源,设置事件监听

multipictureview = (multipictureview) findviewbyid(r.id.multi_image_view);
// 设置图片资源
multipictureview.setlist(list:list<uri>)
multipictureview.setaddclickcallback(new multipictureview.addclickcallback() {
  @override
  public void onaddclick(view view) {
    // 添加图片回调...
  }
});
multipictureview.setdeleteclickcallback(new multipictureview.deleteclickcallback() {
  @override
  public void ondeleted(view view,int index) {
    // 删除图片回调,如果不设置,默认删除图片...
  }
});
multipictureview.setitemclickcallback(new multipictureview.itemclickcallback() {
  @override
  public void onitemclicked(view view,int index,arraylist<uri> uris) {
    // 图片被点击...
  }
});

依赖

第一步:添加到根build.gradle

allprojects {
  repositories {
    ...
    jcenter()
  }
}

第二步:在模块的build.gradle添加依赖

dependencies {
  compile 'com.github.goyourfly:multi_picture_view:latestversion'
}

感谢

在demo中使用了下面两个开源项目,感谢一哈,虽然第二个是我写的...大家要觉得好用,记得给我点个赞

matisse

vincent

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。