2019-08-09

上传相册图片

 View headerView = mNav.getHeaderView(0);
    imh = headerView.findViewById(R.id.hand_img);
    imh.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(Intent.ACTION_PICK);
            intent.setType("image/*");
            startActivityForResult(intent,5);
        }
    });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode==5&&resultCode==RESULT_OK){
             path_img = data.getData();
            Toast.makeText(this, path_img.toString(), Toast.LENGTH_SHORT).show();
            ivRegisterImg.setImageURI(path_img);
            if(path_img.getScheme().equals("file") ){//如果是普通文件的处理,直接new对象
                image = path_img.getPath();
            }else if(path_img.getScheme().equals("content") ){////如果是通过内容提供者读取,需要到内容提供者中再读取
                filepath = getFileFromContentUri(path_img, this);
            }else{
                Toast.makeText(this, "图片不存在", Toast.LENGTH_SHORT).show();
            }
         
    }
    super.onActivityResult(requestCode, resultCode, data);
}

//返回从数据库 (内容提供者)图片的路径
 private String getFileFromContentUri(Uri path_img, Context context) {
        String filePath = null;
        if(path_img == null){
            return null;
        }
        //到内容提供者中读取照片的路径
        ContentResolver resolver = context.getContentResolver();
        String[] strs = {MediaStore.MediaColumns.DATA};//图片在图片内容提供者数据库中的字段:文件的路径
        Cursor cursor = resolver.query(path_img, strs, null, null, null);
        if(cursor != null){
            cursor.moveToFirst();//不为空,说明得到了图片,然后移动到第一张图
             filePath = cursor.getString(cursor.getColumnIndex(strs[0]));
        }
        return filePath;
    }

你可能感兴趣的:(2019-08-09)