Android 圖片選擇器,豐富的配置選項,極大程度的簡化使用

LeBron_Six發表於2016-08-08

Android 圖片選擇器。充分自由定製,極大程度簡化使用,支援相簿多選/圖片預覽/單選/照片裁剪/拍照/自定義圖片載入方式/自定義色調/沉浸式狀態列

Android 圖片選擇器,豐富的配置選項,極大程度的簡化使用

依賴

dependencies {
    compile 'com.yuyh.imgsel:library:2.0.2'
}

版本

V2.0.2 支援單獨跳轉拍照,一些優化

注意事項

  1. 圖片載入由呼叫者自定義一個ImageLoader(詳見使用方式), 可通過Glide、Picasso等方式載入
  2. 使用者自行選擇載入方式,所以載入圖片不受本庫控制,若出現OOM等問題,可能需要在displayImage裡進行壓縮處理等
  3. 有好的建議可以提issue, 謝謝~~

使用

初始化

// 自定義圖片載入器
ISNav.getInstance().init(new ImageLoader() {
    @Override
    public void displayImage(Context context, String path, ImageView imageView) {
        Glide.with(context).load(path).into(imageView);
    }
});

直接拍照

ISCameraConfig config = new ISCameraConfig.Builder()
        .needCrop(true) // 裁剪
        .cropSize(1, 1, 200, 200)
        .build();

ISNav.getInstance().toCameraActivity(this, config, REQUEST_CAMERA_CODE);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == REQUEST_CAMERA_CODE && resultCode == RESULT_OK && data != null) {
        String path = data.getStringExtra("result"); // 圖片地址
        tvResult.append(path + "\n");
    }
}

圖片選擇器


// 自由配置選項
ISListConfig config = new ISListConfig.Builder()
    // 是否多選, 預設true
    .multiSelect(false)
    // 是否記住上次選中記錄, 僅當multiSelect為true的時候配置,預設為true
    .rememberSelected(false)
    // “確定”按鈕背景色
    .btnBgColor(Color.GRAY)
    // “確定”按鈕文字顏色
    .btnTextColor(Color.BLUE)
    // 使用沉浸式狀態列
    .statusBarColor(Color.parseColor("#3F51B5"))
    // 返回圖示ResId
    .backResId(android.support.v7.appcompat.R.drawable.abc_ic_ab_back_mtrl_am_alpha)
    // 標題
    .title("圖片")
    // 標題文字顏色
    .titleColor(Color.WHITE)
    // TitleBar背景色
    .titleBgColor(Color.parseColor("#3F51B5"))
    // 裁剪大小。needCrop為true的時候配置
    .cropSize(1, 1, 200, 200)
    .needCrop(true)
    // 第一個是否顯示相機,預設true
    .needCamera(false)
    // 最大選擇圖片數量,預設9
    .maxNum(9)
    .build();

// 跳轉到圖片選擇器
ISNav.getInstance().toListActivity(this, config, REQUEST_LIST_CODE);
@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(ImgSelActivity.INTENT_RESULT);
        for (String path : pathList) {
            tvResult.append(path + "\n");
        }
    }
}

相關文章