Android——点击加号从相册选取图片替换图片(缩略图)

先上效果图:

Android——点击加号从相册选取图片替换图片(缩略图)_第1张图片
添加照片后:

Android——点击加号从相册选取图片替换图片(缩略图)_第2张图片

附上代码:

1,打开系统相册选取图片:

protected void selectPicFromLocal() {
        Intent intent;
        if (Build.VERSION.SDK_INT < 19) {
            intent = new Intent(Intent.ACTION_GET_CONTENT);
            intent.setType("image/*");

        } else {
            intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        }
        startActivityForResult(intent, REQUEST_CODE_LOCAL);
    }

//REQUEST_CODE_LOCAL 自己定义的标志用来传值

2,重写onActivityResult

 @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
//        获取图片路径
        if (requestCode == REQUEST_CODE_LOCAL && resultCode == Activity.RESULT_OK && data != null) {
            Uri selectedImage = data.getData();
            if (selectedImage != null) {
                sendPicByUri(selectedImage,imgs[index]);
            }
        }

    }

3,sendPicByUri方法判断是否为空,获得图片路径

protected void sendPicByUri(Uri selectedImage,ImageView imageview) {
        String[] filePathColumn = { MediaStore.Images.Media.DATA };
        Cursor cursor = getActivity().getContentResolver().query(selectedImage, filePathColumn, null, null, null);
        if (cursor != null) {
            cursor.moveToFirst();
            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            String picturePath = cursor.getString(columnIndex);
            cursor.close();
            cursor = null;

            if (picturePath == null || picturePath.equals("null")) {
                Toast toast = Toast.makeText(getActivity(), com.hyphenate.easeui.R.string.cant_find_pictures, Toast.LENGTH_SHORT);
                toast.setGravity(Gravity.CENTER, 0, 0);
                toast.show();
                return;
            }
            showImage(picturePath,imageview);
        } else {
            File file = new File(selectedImage.getPath());
            if (!file.exists()) {
                Toast toast = Toast.makeText(getActivity(), com.hyphenate.easeui.R.string.cant_find_pictures, Toast.LENGTH_SHORT);
                toast.setGravity(Gravity.CENTER, 0, 0);
                toast.show();
                return;

            }
            showImage(file.getAbsolutePath(),imageview);
        }

    }

4,显示所略图片

 private void showImage(String imaePath, ImageView imageView) {
        Bitmap bm = BitmapFactory.decodeFile(imaePath);
        Bitmap bitmap = ThumbnailUtils.extractThumbnail(bm, 100, 100);
        imageView.setImageBitmap(bitmap);
    }

//ThumbnailUtils是系统提供的强大到图片修改,自己可以百度百度。

你可能感兴趣的:(Android——点击加号从相册选取图片替换图片(缩略图))