当前位置: 首页 > 编程笔记 >

浅谈谈Android 图片选择器

尹昀
2023-03-14
本文向大家介绍浅谈谈Android 图片选择器,包括了浅谈谈Android 图片选择器的使用技巧和注意事项,需要的朋友参考一下

ImageSelector 简介

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

https://github.com/YancyYe/ImageSelector

Demo

Download Apk

更新内容

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

截图展示

使用说明

步骤一:

通过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);
   }

  }
 }
 类似资料:
  • 本文向大家介绍浅谈webpack4 图片处理汇总,包括了浅谈webpack4 图片处理汇总的使用技巧和注意事项,需要的朋友参考一下 本次课程的代码目录(如下图所示): >>> 本节课源码 >>> 所有课程源码 本节课会讲述 webpack4 中的图片常用的基础操作: 图片处理 和 Base64编码 图片压缩 合成雪碧图 1. 准备工作 如项目代码目录展示的那样,除了常见的 app.js 作为入口文

  • 本文向大家介绍浅谈Android invalidate 分析,包括了浅谈Android invalidate 分析的使用技巧和注意事项,需要的朋友参考一下 1. invalidate 和 postInvalidate 的关系 postInvalidate 是通过 Handler 切换回到主线程,然后在调用 invalidate 的,源码: 2. 子线程是否可以更新 UI ? 可以的,在 Activ

  • 本文向大家介绍浅谈Bootstrap的DatePicker日期范围选择,包括了浅谈Bootstrap的DatePicker日期范围选择的使用技巧和注意事项,需要的朋友参考一下 用日期插件时,经常会有一种需求。两个input框选择。开始时间小于结束时间,结束时间大于开始时间,开始时间和结束时间都不大于当前时间。 我们当然可以用选择的结果来判断输入正确与否。但是更好的办法是让我们的日期选择插件做出一些

  • 大家都知道,在286以上的计算机中,一般都有一个CMOS RAM电路,它用于关机以后继续存放日期、时间、内存设置、软硬盘类型及其他许多有用的设置信息。CMOS即互补金属氧化物半导体,它的设置、应用和管理是保证系统正常工作的关键,下面就介绍一些有关CMOS的基本概念和应用。 ROM BIOS和CMOS RAM芯片 ROM BIOS是固化在ROM中的BIOS(Basic Input/Output Sy

  • 在 JavaScript 中,作用域、上下文、闭包、函数等算是精华中的精华了。对于初级 JSer 来说,是进阶必备。对于前端攻城师来说,只有静下心来,理解了这些精华,才能写出优雅的代码。

  • 本文向大家介绍浅谈golang slice 切片原理,包括了浅谈golang slice 切片原理的使用技巧和注意事项,需要的朋友参考一下 slice介绍 数组的长度在定义之后无法再次修改;数组是值类型,每次传递都将产生一份副本。显然这种数据结构无法完全满足开发者的真实需求。在初始定义数组时,我们并不知道需要多大的数组,因此我们就需要“动态数组”。在Go里面这种数据结构叫slice,slice并不