Android-ImagesPickers

介绍:

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

运行效果:

使用说明:

步骤一:

通过Gradle抓取

//只上传到了jcenter,在项目gradle下使用jcenter
allprojects {
    repositories {
        jcenter()
    }
}
//在module中添加依赖  
dependencies {
    compile 'com.jaikydota.imagespickers:imagespickers:1.0.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);
   }
}

步骤四:

配置

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();
多选
 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))
        // 开启多选   (默认为多选) 
        .mutiSelect()
        // 多选时的最大数量   (默认 9 张)
        .mutiSelectMaxSize(9)
        // 开启拍照功能 (默认关闭)
        .showCamera()
        // 已选择的图片路径
        .pathList(path)
        // 拍照后存放的图片路径(默认 /temp/picture) (会自动创建)
        .filePath("/ImageSelector/Pictures")
        .build();
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))
        // 开启单选   (默认为多选) 
        .singleSelect()
        // 开启拍照功能 (默认关闭)
        .showCamera()
        // 拍照后存放的图片路径(默认 /temp/picture) (会自动创建)
        .filePath("/ImageSelector/Pictures")
        .build();
ImageSelector.open(MainActivity.this, imageConfig);   // 开启图片选择器
单选1:1 便捷截图
 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()  
        // 开启单选   (默认为多选) 
        .singleSelect()
        // 开启拍照功能 (默认关闭)
        .showCamera()
        // 拍照后存放的图片路径(默认 /temp/picture) (会自动创建)
        .filePath("/ImageSelector/Pictures")
        .build();
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 中获取选中的照片路径 数组 :

@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);
     }
  }
}

代码示例

public class MainActivity extends AppCompatActivity {
    private Button btn1, btn2;
    private TextView tv1;
    private ArrayList<String> path = new ArrayList<>();
    public static final int REQUEST_CODE = 123;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn1 = (Button) findViewById(R.id.btn1);
        btn2 = (Button) findViewById(R.id.btn2);
        tv1 = (TextView) findViewById(R.id.tv1);
        //单选
        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ImageConfig imageConfig = new ImageConfig.Builder(
                        new GlideLoader())
                        .steepToolBarColor(getResources().getColor(R.color.titleBlue))
                        .titleBgColor(getResources().getColor(R.color.titleBlue))
                        .titleSubmitTextColor(getResources().getColor(R.color.white))
                        .titleTextColor(getResources().getColor(R.color.white))
                        // 开启单选   (默认为多选)  (单选 为 singleSelect)
                        .singleSelect()
                        //.crop()
                        // 开启拍照功能 (默认开启)
                        //.showCamera()
                        .requestCode(REQUEST_CODE)
                        .build();
                ImageSelector.open(MainActivity.this, imageConfig);
            }
        });
        //多选
        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ImageConfig imageConfig = new ImageConfig.Builder(
                        // GlideLoader 可用自己用的缓存库
                        new GlideLoader())
                        // 如果在 4.4 以上,则修改状态栏颜色 (默认黑色)
                        .steepToolBarColor(getResources().getColor(R.color.titleBlue))
                        // 标题的背景颜色 (默认黑色)
                        .titleBgColor(getResources().getColor(R.color.titleBlue))
                        // 提交按钮字体的颜色  (默认白色)
                        .titleSubmitTextColor(getResources().getColor(R.color.white))
                        // 标题颜色 (默认白色)
                        .titleTextColor(getResources().getColor(R.color.white))
                        // 开启多选   (默认为多选)  (单选 为 singleSelect)
                        //.singleSelect()
                        //裁剪
                        //.crop()
                        // 多选时的最大数量   (默认 9 张)
                        .mutiSelectMaxSize(9)
                        // 已选择的图片路径
                        .pathList(path)
                        // 拍照后存放的图片路径(默认 /temp/picture)
                        .filePath("/temp")
                        // 开启拍照功能 (默认开启)
                        .showCamera()
                        .requestCode(REQUEST_CODE)
                        .build();
                ImageSelector.open(MainActivity.this, imageConfig);
            }
        });
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQUEST_CODE && resultCode == RESULT_OK && data != null) {
            List<String> pathList = data.getStringArrayListExtra(ImageSelectorActivity.EXTRA_RESULT);
            tv1.setText("");
            for (String path : pathList) {
                tv1.append(path);
            }
            path.clear();
            path.addAll(pathList);
        }
    }
}
已下载
0