마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

갤러리에서 실제 파일 경로 구하는거요

0 추천
gallery = (Button) findViewById(R.id.Gallery);
        gallery.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent pickerIntent = new Intent(Intent.ACTION_GET_CONTENT);
                pickerIntent.setType(android.provider.MediaStore.Images.Media.CONTENT_TYPE);
                pickerIntent.setData(android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                startActivityForResult(pickerIntent, REQ_PICK_CODE);
            }
        });

 

먼저 갤러리 부터 열고

 

 

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == RESULT_OK) {
            if (requestCode == REQ_PICK_CODE) {
                ImageView im = (ImageView) findViewById(R.id.image);
                try {
                    Bitmap bm = Images.Media.getBitmap(getContentResolver(), data.getData());
                    im.setImageBitmap(bm);

                    Uri uri = data.getData();
                 //경로 구하기

                        getPath(uri);
                 

                    Log.i("갤러리이미지 선택 LastPathSegment : ", data.getData().getLastPathSegment());
                     this.data.setImg(bm);
                     this.data.setImgName(data.getData().getLastPathSegment());
                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            }
        }
        super.onActivityResult(requestCode, resultCode, data);
    };

 

선택한값에 대해서 getpath로 구해주는데

 

 

 

 

private String getPath(Uri uri)
    {
        String[] projection = { MediaStore.Images.Media.DATA };
        Cursor cursor = managedQuery(uri, projection, null, null, null);
        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        return cursor.getString(column_index);
    }

 

getpath 소스 입니다

지금 제가 선택해서 구할 경로는

 

/storage/emulated/0/DCIM/100_CFV5/eurotext.png

이겁니다 갤러리들어가서 이미지 선택하면 이놈이 나와야되는데 안되네요

저경로는 직접갤러리들어가서 세부정보로 파일경로를 본겁니다.

 

아게 값이없어요..
안드로이드개빡 (770 포인트) 님이 2015년 11월 2일 질문

1개의 답변

0 추천
private String getRealPathFromURI(Uri contentUri) {
        String[] proj = { MediaStore.Images.Media.DATA };

        CursorLoader cursorLoader = new CursorLoader(this, contentUri, proj, null, null, null);
        Cursor cursor = cursorLoader.loadInBackground();

        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        return cursor.getString(column_index);
}
익명사용자 님이 2015년 11월 2일 답변
감사합니다. ㅜㅜㅜ 찾았는데
...