티스토리 뷰

728x90
반응형

아래의 방법으로 갤러리에 저장된 사진중에 하나의 사진을 선택하여 해당 파일의 정보를 가져올 수 있습니다.


Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, 1);



갤러리 인텐트가 불려지고,


불려진 액티비티에서 사진을 선택하면


startActivityForResult()로 실행되었기에 이전 액티비티로 되돌아오게 됩니다.



onActivityResult 콜백의 파라메터를 통해 선택된 사진의 정보를 가져올 수 있는데


이때 intent.getData().getPath() 또는 data.getData().getPaht() 메소드를 통해 가져온 이미지의 경로는 



/external/images/media/38



형태의 경로를 리턴합니다.



하지만 이 경로는 실제 이미지 파일이 저장된 경로와 다릅니다.



그래서 한번의 과정을 더 거쳐주어야 합니다.



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


이 함수는 갤러리 액티비티를 통해 선택한 이미지의 uri 값을 파라메터로 던져주면 실제 SD카드의 경로를 리턴해주는 함수입니다.


이 함수를 통해 갤러리에서 선택한 사진의


/mnt/sdcard/Pictures/Screenshots/picture.png


이렇게 생긴 실제 경로를 가져올 수 있습니다.




참고

http://stackoverflow.com/questions/6935497/android-uploading-image

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함