Android 打开相册选择图片及相册图片返回路径获取

今天写一个最简单获取相册照片的方法,然后根据返回的相册信息获取图片本地路径

1、布局文件仅有一个图片和一个button


                <ImageView
                    android:id="@+id/image"
                    android:layout_width="match_parent"
                    android:layout_height="240dp" />

                <com.qmuiteam.qmui.layout.QMUIButton
                    android:id="@+id/save"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_margin="10dp"
                    android:textColor="#fff"
                    android:textSize="16sp"
                    android:textStyle="bold"
                    app:qmui_radius="20dp" />

2、Activity中代码如下

//跳转相册方法
   Intent intent = new Intent(Intent.ACTION_PICK, null);
                intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
                startActivityForResult(intent, 2);


//相册选择完返回的方法及返回路径的获取

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    
    
        super.onActivityResult(requestCode, resultCode, data);
        image.setVisibility(View.VISIBLE);
        listgener.clear();
        if (requestCode == 2) {
    
    
            // 从相册返回的数据
            if (data != null) {
    
    
                Uri uri = data.getData();
                image.setImageURI(uri);
                if (!TextUtils.isEmpty(uri.getAuthority())) {
    
    
                    Cursor cursor = getContentResolver().query(uri,
                            new String[]{
    
    MediaStore.Images.Media.DATA}, null, null, null);
                    if (null == cursor) {
    
    
                        Toast.makeText(this, "图片没找到", Toast.LENGTH_SHORT).show();
                        return;
                    }
                    cursor.moveToFirst();
                    path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
                    cursor.close();
                } else {
    
    
                    path = uri.getPath();
                }
         
                Log.e(TAG, "onActivityResult: " + path);
            } else {
    
    
                Toast.makeText(this, "图片没找到", Toast.LENGTH_SHORT).show();
                return;
            }

        }

3、根据获取的返回路径进行其他操作,大功告成!!

猜你喜欢

转载自blog.csdn.net/Chen_xiaobao/article/details/129930017