"http://example.com/example.jpg"과 같은 원격 이미지를 안드로이드 폰 내장 갤러리에 복사하고 싶습니다 ... 어떻게해야합니까?http를 통해 원격 이미지를 Android의 갤러리 폴더로 복사하려면 어떻게해야합니까?
답변
이렇게하려면 이미지를 다운로드하여 내부 메모리에 저장해야합니다.
public static Bitmap getBitmap(String url) {
try {
InputStream is = (InputStream) new URL(url).getContent();
Bitmap d = BitmapFactory.decodeStream(is);
is.close();
return d;
} catch (Exception e) {
return null;
}
}
Code from here을하지만 큰 이미지와 메모리 문제가됩니다
당신은 스스로 이미지를 다운로드 할 수 있습니다. Android Universal Image Loader 또는 Picasso from square
먼저 갤러리 앱이 액세스 할 수있는 외부 메모리로 다운로드해야합니다. 둘째, jpg 데이터를 파일에 직접 저장할 수있는 .jpg 인 경우 Bitmap을 사용하지 않는 것이 좋습니다. – greenapps
과 같은 빌드 라이브러리를 사용하는 것이 좋습니다. 여기서 example of how to use the Android DownloadManager to download your file을 찾을 수 있습니다.
대상 경로는 Environment 클래스에 정의 된 상수를 사용하여 결정할 수 있습니다. 상수 DIRECTORY_DCIM은 모든 액티비티가 자신의 이미지를 저장할 사용자 지정 폴더를 만들 수있는 상위 디렉터리를 가리 킵니다. 자신의 하위 폴더를 대상 폴더로 만들 수 있습니다.
이미지가 다운로드되면 기본 갤러리 응용 프로그램에 표시되지 않습니다. 이는 Android가 모든 미디어 파일로 색인을 만들고 여전히 고정되어 있기 때문입니다. 새 다운로드 이미지를 알지 못합니다. 이 색인은 Android 기기를 부팅 할 때마다 업데이트되지만 파일을 추가 할 때마다 기기를 재부팅하는 것이 약간 번거롭기 때문에 색인 서비스에 새 파일이 만들어 졌음을 색인 서비스에 알리고이 색인을 사용하여 색인을 생성해야합니다. 코드 :
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
intent.setData(Uri.fromFile(file));
sendBroadcast(intent);
이 스캔은 파일을 지운 후에 수행해야합니다.
갤러리 폴더가 없습니다. 갤러리는 기기에있는 모든 사진을 보여줄 수있는 앱입니다. 따라서 원하는 폴더에 사진을 넣을 수 있습니다. – greenapps