Jak mogę zapisać obrazy na karcie SD, którą pobieram z adresu URL obrazu?Jak przesłać obraz z jego adresu URL na kartę SD?
Odpowiedz
Najpierw upewnij się, że aplikacja ma uprawnienia do zapisu na sdcard. Aby to zrobić, musisz dodać uprawnienia do używania zapisać pamięć zewnętrzną w pliku manifestu aplikacji. Zobacz: Setting Android Permissions
Następnie możesz pobrać adres URL do pliku na sdcard. Prostym sposobem jest:
URL url = new URL ("file://some/path/anImage.png");
InputStream input = url.openStream();
try {
//The sdcard directory e.g. '/sdcard' can be used directly, or
//more safely abstracted with getExternalStorageDirectory()
File storagePath = Environment.getExternalStorageDirectory();
OutputStream output = new FileOutputStream (new File(storagePath,"myImage.png"));
try {
byte[] buffer = new byte[aReasonableSize];
int bytesRead = 0;
while ((bytesRead = input.read(buffer, 0, buffer.length)) >= 0) {
output.write(buffer, 0, bytesRead);
}
} finally {
output.close();
}
} finally {
input.close();
}
EDIT: pozwolenie Put w jawnym
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
@Paresh: Dzięki, zaktualizowałem kod, aby użyć 'getExternalStorageDirectory()'. Czy wiesz, czy zwraca on ukośnik? na przykład '/ sdcard' lub'/sdcard/' – Akusete
Twoje pytanie jest dyskusyjne, ponieważ' Environment.getExternalStorageDirectory() 'nie zwraca' String', a zatem twój kod się nie kompiluje. Poprawiłem dla ciebie twój kod. –
co to jest aReasonableSize? –
Doskonałym przykładem może być znaleziony w latest post na blogu Android dewelopera:
static Bitmap downloadBitmap(String url) {
final AndroidHttpClient client = AndroidHttpClient.newInstance("Android");
final HttpGet getRequest = new HttpGet(url);
try {
HttpResponse response = client.execute(getRequest);
final int statusCode = response.getStatusLine().getStatusCode();
if (statusCode != HttpStatus.SC_OK) {
Log.w("ImageDownloader", "Error " + statusCode +
" while retrieving bitmap from " + url);
return null;
}
final HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream inputStream = null;
try {
inputStream = entity.getContent();
final Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
return bitmap;
} finally {
if (inputStream != null) {
inputStream.close();
}
entity.consumeContent();
}
}
} catch (Exception e) {
// Could provide a more explicit error message for IOException or
// IllegalStateException
getRequest.abort();
Log.w("ImageDownloader", "Error while retrieving bitmap from " + url,
e.toString());
} finally {
if (client != null) {
client.close();
}
}
return null;
}
Nie opisuje to sposobu zapisania obrazu na karcie SD, a jedynie pobierania obrazu do pamięci. –
W jaki sposób ta odpowiedź dostała 9 przegranych?! ... –
- 1. Android - Zapisywanie pobranego obrazu z adresu URL na karcie SD
- 2. Zapisywanie na Androidzie Bitmapy na kartę SD
- 3. Jak uzyskać obraz z adresu URL -> zmienić rozmiar bez zapisywania -> przesłać na serwer FTP?
- 4. aplikacji nie można przenieść na kartę SD
- 5. Jak mogę pobrać plik wideo na kartę SD?
- 6. Jak przesłać obraz (podany w postaci adresu URL danych) do facebooka?
- 7. Eliksir - pobierz plik (obraz) z adresu URL:
- 8. jak przesłać obraz na ACF z update_field na wordpress
- 9. iOS: załaduj obraz z adresu URL
- 10. JavaScript narysuj dynamiczny obraz z adresu URL na element canvas
- 11. Jak wyświetlić przesuwane obrazy na kartę SD w emulatorze
- 12. Jak zapisać widok układu jako obraz lub pdf na kartę SD w systemie Android?
- 13. Otwórz nową kartę z niestandardowym HTML zamiast adresu URL
- 14. Uruchom przeglądarkę intencji, aby wyświetlić obraz z adresu URL
- 15. Jak mogę pobrać duży obraz z adresu URL?
- 16. Jak przekierować moje dane wyjściowe dziennika z logcat na kartę SD na urządzeniu z Androidem?
- 17. Zapisywanie pliku tekstowego na kartę SD kończy się niepowodzeniem.
- 18. Jak przesłać ciąg do adresu URL w java?
- 19. Pobierz odpowiedni obraz i podsumowanie z adresu URL
- 20. Android: usuń obraz z karty SD
- 21. Android: Wyświetl obraz z karty SD
- 22. Javascript: Załaduj obraz z adresu URL i wyświetl
- 23. Facebook API załaduj zdjęcie z adresu URL
- 24. Szykuje jak zażądać adresu URL z wyjątkiem parametrów adresu URL?
- 25. Jak powiązać obraz za pomocą dynamicznego adresu URL w WPF?
- 26. Pobierz obraz z adresu URL za pomocą kodu php?
- 27. przesłać obraz z iPhone do folderu na serwerze
- 28. Obraz interwencji: zapisać obraz bezpośrednio z adresu URL z oryginalną nazwą pliku i zewn.
- 29. Konwersja adresu URL blobu na zwykły URL
- 30. Obraz z URL strumienia
@Akusete ... powinieneś zamienić "buffer.length" w output.write (buffer, 0, buffer.length); do bytesRead. W przeciwnym razie dane śmieci zostaną dołączone na końcu pliku. – shaffooo