2011-02-07 2 views
3

나는 애플리케이션에서 표준 이미지 (갤러리)로 저장된 이미지를 다른 이미지로 복사하는 데 필요한 코드를 지원할 사람을 찾고 있습니다. SD 카드의 폴더. 사용자가 버튼을 클릭 할 수있게하고 특정 파일을 SD 카드 갤러리 폴더에서 SD 카드의 다른 폴더로 복사하려고합니다. 감사합니다.갤러리 폴더에서 SD 카드 대체 폴더에 안드로이드 이미지 복사

답변

25

Usmaan, 다음

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (resultCode == RESULT_OK) { 
     switch(requestCode) { 
     case SELECT_IMAGE: 
      mSelectedImagePath = getPath(data.getData()); 
      break; 
    } 
} 

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

가 반환
public void imageFromGallery() { 
    Intent getImageFromGalleryIntent = 
     new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI); 
    startActivityForResult(getImageFromGalleryIntent, SELECT_IMAGE); 
} 

는, 다음의 코드 부분과 선택한 이미지의 경로를 얻을

문자열에 경로 이름이 있으므로 다른 위치로 복사 할 수 있습니다.

건배!

편집 : 당신은 그냥 파일을 복사해야하는 경우 ... 뭔가를 시도

내가 antoher
+0

내가 이해 해달라고 미안 해요, 내가 뜨거운 알고 해당 폴더에서 이미지를 복사 말을했었다 죄송합니다

try { File sd = Environment.getExternalStorageDirectory(); File data = Environment.getDataDirectory(); if (sd.canWrite()) { String sourceImagePath= "/path/to/source/file.jpg"; String destinationImagePath= "/path/to/destination/file.jpg"; File source= new File(data, sourceImagePath); File destination= new File(sd, destinationImagePath); if (source.exists()) { FileChannel src = new FileInputStream(source).getChannel(); FileChannel dst = new FileOutputStream(destination).getChannel(); dst.transferFrom(src, 0, src.size()); src.close(); dst.close(); } } } catch (Exception e) {} 
Beginner

+0

이 코드의 첫 번째 부분에서는 갤러리를 실행하고 이미지를 선택할 수 있습니다. 이미지를 선택하면 내가 게시 한 코드의 두 번째 부분에서'onActivityResult()'를 호출합니다. 갤러리 앱에서 반환 된 데이터를 가져오고 내가 게시 한'getPath()'함수는 선택한 이미지의 전체 경로를 문자열로 반환합니다. 이 코드를 사용하면 카메라로 사진을 찍을 수 없습니다. –

+0

다른 폴더에 이미지를 복사하고 싶습니다. 또한 갤러리를 열고 싶지 않습니다. 이미 이미지 이름을 알고 있고 sdcard/dcim/imagename에 저장되어있는 SD 카드를 알고 있습니다. – Beginner

1

갤러리 이미지는 이미 Android 휴대 전화의 SD 카드에 저장되어 있습니다. 공식 문서는 체크 아웃해야하는 working with external storage에 멋진 섹션이 있습니다. 당신이 갤러리 선택기 의도를 시작할 수 있습니다

+0

내 응용 프로그램 내에서 사진 및 기타 걸릴 ....하지만 나중에 갤러리 폴더에서 다른 폴더로 이미지를 복사하려면이 코드는이 일을하지 않는 것이 확실합니까? – Beginner

관련 문제