1. 程式人生 > >Android Studio 圖片選擇器

Android Studio 圖片選擇器

build.gradle新增jar:

 compile 'com.github.bumptech.glide:glide:3.6.1'
 compile 'com.lzy.widget:ninegridview:0.2.1'
 compile 'com.lzy.widget:imagepicker:0.3.2'

跳轉選擇圖片:
@OnClick(R.id.selectImageMany)
    public void selectImage(View view) {
        ImagePicker imagePicker = ImagePicker.getInstance();
        imagePicker.setImageLoader(new GlideImageLoader());
        imagePicker.setMultiMode(false);   //多選
        imagePicker.setShowCamera(true);  //顯示拍照按鈕
        imagePicker.setSelectLimit(9);    //最多選擇9張
        imagePicker.setCrop(false);       //不進行裁剪
        Intent intent = new Intent(this, ImageGridActivity.class);
        startActivityForResult(intent, 100);
    }

返回獲得圖片上傳:

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == ImagePicker.RESULT_CODE_ITEMS) {
            if (data != null && requestCode == 100) {
                imageItems = (ArrayList<ImageItem>) data.getSerializableExtra(ImagePicker.EXTRA_RESULT_ITEMS);
                if (imageItems != null && imageItems.size() > 0) {
                    StringBuilder sb = new StringBuilder();
                    for (int i = 0; i < imageItems.size(); i++) {
                        if (i == imageItems.size() - 1) sb.append("圖片").append(i + 1).append(" : ").append(imageItems.get(i).path);
                        else sb.append("圖片").append(i + 1).append(" : ").append(imageItems.get(i).path).append("\n");
                    }
                    tvImages.setText(sb.toString());
                } else {
                    tvImages.setText("--");
                }
            } else {
                Toast.makeText(this, "沒有選擇圖片", Toast.LENGTH_SHORT).show();
                tvImages.setText("--");
            }
        }
    }

圖片轉File:

//圖片轉File上傳
        ArrayList<File> files = new ArrayList<>();
        if (imageItems != null && imageItems.size() > 0) {
            for (int i = 0; i < imageItems.size(); i++) {
                files.add(new File(imageItems.get(i).path));
            }
        }