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

浅谈谈Android 图片选择器

程序员文章站 2023-12-13 08:26:10
imageselector 简介 android自定义相册,实现了拍照、图片选择(单选/多选)、imageloader无绑定 任由开发者选择 https://git...

imageselector 简介

android自定义相册,实现了拍照、图片选择(单选/多选)、imageloader无绑定 任由开发者选择

https://github.com/yancyye/imageselector

demo

浅谈谈Android 图片选择器

download apk

更新内容

ui重改
所有功能可配置
解决oom情况
图片手动选择
支持汉语和英语

截图展示

浅谈谈Android 图片选择器

使用说明

步骤一:

通过gradle抓取

dependencies {
 compile 'com.yancy.imageselector:imageselector:1.1.0'
}

步骤二:

在 androidmanifest.xml 中 添加 如下权限

<!-- 从sdcard中读取数据的权限 -->
<uses-permission android:name="android.permission.read_external_storage" />
<!-- 往sdcard中写入数据的权限 -->
<uses-permission android:name="android.permission.write_external_storage" />

步骤三:

创建 图片加载器 (其中可以按照 喜好 使用不同的 第三方图片加载框架 以下为glide示例)

public class glideloader implements com.yancy.imageselector.imageloader {

 @override
 public void displayimage(context context, string path, imageview imageview) {
  glide.with(context)
    .load(path)
    .placeholder(com.yancy.imageselector.r.mipmap.imageselector_photo)
    .centercrop()
    .into(imageview);
 }

}

配置imageselector

 imageconfig imageconfig
  = new imageconfig.builder(mainactivity.this , new glideloader())
  // 如果在 4.4 以上,则修改状态栏颜色 (默认黑色)
  .steeptoolbarcolor(getresources().getcolor(r.color.blue))
  // 标题的背景颜色 (默认黑色)
  .titlebgcolor(getresources().getcolor(r.color.blue))
  // 提交按钮字体的颜色 (默认白色)
  .titlesubmittextcolor(getresources().getcolor(r.color.white))
  // 标题颜色 (默认白色)
  .titletextcolor(getresources().getcolor(r.color.white))
  // 开启多选 (默认为多选) (单选 为 singleselect)
  .mutiselect()
  // 多选时的最大数量 (默认 9 张)
  .mutiselectmaxsize(9)
  // 已选择的图片路径
  .pathlist(path)
  // 拍照后存放的图片路径(默认 /temp/picture)
  .filepath("/imageselector/pictures")
  // 开启拍照功能 (默认关闭)
  .showcamera()
  .build();


imageselector.open(imageconfig); // 开启图片选择器

在  onactivityresult 中获取选中的照片路径 数组 :

 @override
 protected void onactivityresult(int requestcode, int resultcode, intent data) {
  super.onactivityresult(requestcode, resultcode, data);
  if (requestcode == imageselector.image_request_code && resultcode == result_ok && data != null) {

   // get image path list
   list<string> pathlist = data.getstringarraylistextra(imageselectoractivity.extra_result);

   for (string path : pathlist) {
    log.i("imagepathlist", path);
   }

  }
 }

上一篇:

下一篇: