2014-11-23 1 views
-2

Я хочу скопировать удаленное изображение, например «http://example.com/example.jpg» на веб-страницу телефона пользователя андроида. Как это сделать?Как скопировать удаленное изображение через http в папку галереи в Android?

+0

Папки с каталогами не существует. Галерея - это только приложение, которое может показать вам все изображения, находящиеся на вашем устройстве. Таким образом, вы можете поместить это изображение в любую нужную папку. – greenapps

ответ

0

Для этого вам необходимо загрузить изображение и сохранить его во внутренней памяти.

Вы можете загрузить изображение самостоятельно:

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

+0

Сначала он должен быть загружен во внешнюю память, так как в приложении Gallery есть доступ. Во-вторых, это очень плохая идея сделать Bitmap, если .jpg, где данные jpg можно напрямую сохранить в файл. – greenapps

0

Здесь вы найдете 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); 

Это сканирование также должно происходить после стирания файла.