2017-11-07 19 views
0

안드로이드에서 이렇게 어려운 이유는 무엇입니까? 이미지를 쉽게 알 수 있지만 .gif가 아닌 이유는 무엇입니까?.GIF 파일을 갤러리에 저장하는 방법은 무엇입니까?

여기에 SD 카드에 저장하는이 코드가 있지만 SD 카드가없는 사용자를 고려하려고합니다.

File sdCard = Environment.getExternalStorageDirectory(); 
File dir = new File (sdCard.getAbsolutePath() + "/dir1/dir2"); 
dir.mkdirs(); 
File file = new File(dir, "GIFName_" + System.currentTimeMillis() +".gif"); 

try { 
    FileOutputStream f = new FileOutputStream(file); 
    f.write(generateGIF(list)); 

} catch(Exception e) { 
    e.printStackTrace(); 
} 

내 응용 프로그램은 기본적에서 .GIF 이미지를 변환하고, 지금은 SD 카드에 저장합니다,하지만 난 갤러리에 저장합니다. 쉽게 할 수있는 방법이 있습니까? 나는 당신이 이미지를 위해 그것을 할 수 있지만, 당신을 위해 할 수 있다는 것을 안다. 창조 된 GIFS?

+0

가 왜 그냥 다음, SD 카드에 저장 갤러리에 SD 카드에서 이동 https://developer.android.com/reference/android/media/MediaScannerConnection.html#scanFile(java.lang.String, java.lang.String의) ? –

+0

우리가 할 수있는 기다려 ...? –

+0

나도 몰라 왜 시도하지 그래? –

답변

0

정확히 Gallery을 의미합니까? Gallery이라는 디렉토리가 없습니다. 그러나 Gallery이라는 응용 프로그램이 있는데 그게 무슨 뜻인지 알기를 바랍니다.

Environment.getExternalStorageDirectory() 외부 저장소에 대한 루트 경로를 반환합니다. 이것은 저장하려는 파일에 대한 종속성이 없습니다. Pictures 디렉토리에 저장하려면 Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)

Gallery은 전체 시스템을 검색하고 모든 미디어 항목을 추가하는 안드로이드의 응용 프로그램입니다. Android에서 프로그래밍 방식으로 파일을 저장하려고 시도하면 파일이 Gallery에 의해 즉시 선택된다는 보장이 없습니다 (.gif 또는 .jpg 또는 .png). 그래서 MediaScannerConnection을 사용해야합니다. 이렇게하면 갤러리에 표시되도록 새로 생성 된 파일을 추가 할 수 있습니다. 다음과 같은

뭔가 :

MediaScannerConnection.scanFile(context, new String[]{file.getAbsolutePath()}, null, null);

문서 :