Android 图片选择器(第二种)

介绍:

Android-ImagesPickers是一个图片选择(单选/多选)、拍照、裁剪的图片选择器。使用方便,功能可自己配置,Android-ImagesPickers自身并没有强制绑定某个ImageLoader,开发者可以根据自己项目给Android-ImagesPickers配置图片加载器。

运行效果:

使用说明:

步骤一:

通过Gradle抓取
   
   
  1. //只上传到了jcenter,在项目gradle下使用jcenter
  2. allprojects {
  3.     repositories {
  4.         jcenter()
  5.     }
  6. }
   
   
  1. //在module中添加依赖  
  2. dependencies {
  3.     compile 'com.jaikydota.imagespickers:imagespickers:1.0.0'
  4. }

步骤二:

在 AndroidManifest.xml 中 添加 如下权限

   
   
  1. <!-- 从sdcard中读取数据的权限 -->
  2. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  3. <!-- 往sdcard中写入数据的权限 -->
  4. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

步骤三:

创建 图片加载器 (其中可以按照 喜好  使用不同的 第三方图片加载框架 以下为Glide示例)
   
   
  1. public class GlideLoader implements com.yancy.imageselector.ImageLoader {
  2.  
  3.    @Override
  4.    public void displayImage(Context context, String path, ImageView imageView) {
  5.        Glide.with(context)
  6.                .load(path)
  7.                .placeholder(com.yancy.imageselector.R.mipmap.imageselector_photo)
  8.                .centerCrop()
  9.                .into(imageView);
  10.    }
  11.  
  12. }

步骤四:

配置
UI 视图配置
  ImageConfig imageConfig
      = new ImageConfig.Builder(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))
     .build();

多选
   
   
  1.  ImageConfig imageConfig
  2.         = new ImageConfig.Builder(new GlideLoader())
  3.         .steepToolBarColor(getResources().getColor(R.color.blue))
  4.         .titleBgColor(getResources().getColor(R.color.blue))
  5.         .titleSubmitTextColor(getResources().getColor(R.color.white))
  6.         .titleTextColor(getResources().getColor(R.color.white))
  7.         // 开启多选   (默认为多选) 
  8.         .mutiSelect()
  9.         // 多选时的最大数量   (默认 9 张)
  10.         .mutiSelectMaxSize(9)
  11.         // 开启拍照功能 (默认关闭)
  12.         .showCamera()
  13.         // 已选择的图片路径
  14.         .pathList(path)
  15.         // 拍照后存放的图片路径(默认 /temp/picture) (会自动创建)
  16.         .filePath("/ImageSelector/Pictures")
  17.         .build();
  18.  
  19.  
  20. ImageSelector.open(MainActivity.this, imageConfig);   // 开启图片选择器
单选
   
   
  1.  ImageConfig imageConfig
  2.         = new ImageConfig.Builder(new GlideLoader())
  3.         .steepToolBarColor(getResources().getColor(R.color.blue))
  4.         .titleBgColor(getResources().getColor(R.color.blue))
  5.         .titleSubmitTextColor(getResources().getColor(R.color.white))
  6.         .titleTextColor(getResources().getColor(R.color.white))
  7.         // 开启单选   (默认为多选) 
  8.         .singleSelect()
  9.         // 开启拍照功能 (默认关闭)
  10.         .showCamera()
  11.         // 拍照后存放的图片路径(默认 /temp/picture) (会自动创建)
  12.         .filePath("/ImageSelector/Pictures")
  13.         .build();
  14.  
  15.  
  16. ImageSelector.open(MainActivity.this, imageConfig);   // 开启图片选择器
单选1:1 便捷截图
   
   
  1.  ImageConfig imageConfig
  2.         = new ImageConfig.Builder(new GlideLoader())
  3.         .steepToolBarColor(getResources().getColor(R.color.blue))
  4.         .titleBgColor(getResources().getColor(R.color.blue))
  5.         .titleSubmitTextColor(getResources().getColor(R.color.white))
  6.         .titleTextColor(getResources().getColor(R.color.white))
  7.         // (截图默认配置:关闭    比例 1:1    输出分辨率  500*500)
  8.         .crop()  
  9.         // 开启单选   (默认为多选) 
  10.         .singleSelect()
  11.         // 开启拍照功能 (默认关闭)
  12.         .showCamera()
  13.         // 拍照后存放的图片路径(默认 /temp/picture) (会自动创建)
  14.         .filePath("/ImageSelector/Pictures")
  15.         .build();
  16.  
  17.  
  18. ImageSelector.open(MainActivity.this, imageConfig);   // 开启图片选择器
单选自定义截图
 ImageConfig imageConfig
        = new ImageConfig.Builder(new GlideLoader())
        .steepToolBarColor(getResources().getColor(R.color.blue))
        .titleBgColor(getResources().getColor(R.color.blue))
        .titleSubmitTextColor(getResources().getColor(R.color.white))
        .titleTextColor(getResources().getColor(R.color.white))
        // (截图默认配置:关闭    比例 1:1    输出分辨率  500*500)
        .crop(1, 2, 500, 1000) 
        // 开启单选   (默认为多选) 
        .singleSelect()
        // 开启拍照功能 (默认关闭)
        .showCamera()
        // 拍照后存放的图片路径(默认 /temp/picture) (会自动创建)
        .filePath("/ImageSelector/Pictures")
        .build();
 
 
ImageSelector.open(MainActivity.this, imageConfig);   // 开启图片选择器

步骤五:

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

   
   
  1. @Override
  2. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  3.  super.onActivityResult(requestCode, resultCode, data);
  4.   if (requestCode == ImageSelector.IMAGE_REQUEST_CODE && resultCode == RESULT_OK && data != null) {
  5.  
  6.     // Get Image Path List
  7.      List<String> pathList = data.getStringArrayListExtra(ImageSelectorActivity.EXTRA_RESULT);
  8.  
  9.      for (String path : pathList) {
  10.          Log.i("ImagePathList", path);
  11.      }
  12.   }
  13. }

代码示例

   
   
  1. public class MainActivity extends AppCompatActivity {
  2.  
  3.     private Button btn1, btn2;
  4.     private TextView tv1;
  5.     private ArrayList<String> path = new ArrayList<>();
  6.  
  7.     public static final int REQUEST_CODE = 123;
  8.  
  9.     @Override
  10.     protected void onCreate(Bundle savedInstanceState) {
  11.         super.onCreate(savedInstanceState);
  12.         setContentView(R.layout.activity_main);
  13.  
  14.         btn1 = (Button) findViewById(R.id.btn1);
  15.         btn2 = (Button) findViewById(R.id.btn2);
  16.         tv1 = (TextView) findViewById(R.id.tv1);
  17.         //单选
  18.         btn1.setOnClickListener(new View.OnClickListener() {
  19.             @Override
  20.             public void onClick(View v) {
  21.                 ImageConfig imageConfig = new ImageConfig.Builder(
  22.                         new GlideLoader())
  23.                         .steepToolBarColor(getResources().getColor(R.color.titleBlue))
  24.                         .titleBgColor(getResources().getColor(R.color.titleBlue))
  25.                         .titleSubmitTextColor(getResources().getColor(R.color.white))
  26.                         .titleTextColor(getResources().getColor(R.color.white))
  27.                         // 开启单选   (默认为多选)  (单选 为 singleSelect)
  28.                         .singleSelect()
  29.                         //.crop()
  30.                         // 开启拍照功能 (默认开启)
  31.                         //.showCamera()
  32.                         .requestCode(REQUEST_CODE)
  33.                         .build();
  34.                 ImageSelector.open(MainActivity.this, imageConfig);
  35.             }
  36.         });
  37.         //多选
  38.         btn2.setOnClickListener(new View.OnClickListener() {
  39.             @Override
  40.             public void onClick(View v) {
  41.                 ImageConfig imageConfig = new ImageConfig.Builder(
  42.                         // GlideLoader 可用自己用的缓存库
  43.                         new GlideLoader())
  44.                         // 如果在 4.4 以上,则修改状态栏颜色 (默认黑色)
  45.                         .steepToolBarColor(getResources().getColor(R.color.titleBlue))
  46.                         // 标题的背景颜色 (默认黑色)
  47.                         .titleBgColor(getResources().getColor(R.color.titleBlue))
  48.                         // 提交按钮字体的颜色  (默认白色)
  49.                         .titleSubmitTextColor(getResources().getColor(R.color.white))
  50.                         // 标题颜色 (默认白色)
  51.                         .titleTextColor(getResources().getColor(R.color.white))
  52.                         // 开启多选   (默认为多选)  (单选 为 singleSelect)
  53.                         //.singleSelect()
  54.                         //裁剪
  55.                         //.crop()
  56.                         // 多选时的最大数量   (默认 9 张)
  57.                         .mutiSelectMaxSize(9)
  58.                         // 已选择的图片路径
  59.                         .pathList(path)
  60.                         // 拍照后存放的图片路径(默认 /temp/picture)
  61.                         .filePath("/temp")
  62.                         // 开启拍照功能 (默认开启)
  63.                         .showCamera()
  64.                         .requestCode(REQUEST_CODE)
  65.                         .build();
  66.                 ImageSelector.open(MainActivity.this, imageConfig);
  67.             }
  68.         });
  69.     }
  70.  
  71.  
  72.     @Override
  73.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  74.         super.onActivityResult(requestCode, resultCode, data);
  75.         if (requestCode == REQUEST_CODE && resultCode == RESULT_OK && data != null) {
  76.             List<String> pathList = data.getStringArrayListExtra(ImageSelectorActivity.EXTRA_RESULT);
  77.  
  78.             tv1.setText("");
  79.             for (String path : pathList) {
  80.                 tv1.append(path);
  81.             }
  82.  
  83.             path.clear();
  84.             path.addAll(pathList);
  85.         }
  86.     }
  87. }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值