Anzahl:
<manifest ...>
<uses-permission android:name="android.permission.INTERNET" />
In Ihrem Manifest-Datei, da sonst die Quelle kann nicht heruntergeladen werden .
Wenn Sie es in SD-Karte speichern möchten, müssen Sie eine andere Berechtigung:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Um es zu retten.
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Wenn Sie diese Datei in Zukunft erhalten möchten.
Weiter, wenn Sie es zu einem externen Verzeichnis speichern möchten, können Sie dies versuchen:
public void setUpDirectory(String folderName,String source){
File directory = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+File.separator+folderName);
if(!directory.exists() && !directory.isDirectory()) {
directory.mkdirs();
}
URL imageurl = new URL(source);
Bitmap bitmap = BitmapFactory.decodeStream(imageurl.openConnection().getInputStream());
saveFile(directory,bitmap);
}
private void saveFile(File fileName,Bitmap bmp){
FileOutputStream outputStream = null;
try {
outputStream = new FileOutputStream(fileName);
bmp.compress(Bitmap.CompressFormat.PNG, 100, outputStream); // 100 will be ignored
} catch (Exception e) {
e.printStackTrace();
}
finally {
try {
if outputStream != null) {
outputStream .close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Möchten Sie wirklich auf SD-Karte speichern? Picasso wird herunterladen, wann immer Sie das Bild anzeigen und in Anwendungscache speichern möchten – Stallion
ok, aber warum es nicht funktioniert? @Stallion – Sid
Setzen Sie Ihre verwandten vollständigen Code als eine einzige Zeile mit Manifest-Berechtigung auch – Stallion