Вам нужно проанализировать Json в модели.
Затем вы можете получить свойство url и загрузить его в файловую систему. Вы можете использовать HttpUrlConnection, чтобы сделать это, или если вы хотите использовать библиотеку Picasso с Target Picasso и загрузить ее в файловую систему.
Позвольте мне показать вам пример.
Использование Пикассо :
public static void downloadImageWithPicasso(Context context, String url) {
Picasso.with(context)
.load(your_url_from_model)
.into(saveUsingTarget(url));
}
private static Target saveUsingTarget(final String url){
Target target = new Target(){
@Override
public void onBitmapLoaded(final Bitmap bitmap, Picasso.LoadedFrom from) {
new Thread(new Runnable() {
@Override
public void run() {
File file = new File(Environment.getExternalStorageDirectory().getPath() + "/" + url);
try {
file.createNewFile();
FileOutputStream ostream = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG, 80, ostream);
ostream.flush();
ostream.close();
} catch (IOException e) {
Log.e("IOException", e.getLocalizedMessage());
}
}
}).start();
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
};
return target;
}
Использование HttpUrlConnection
public void downloadImageWithUrlConnection(){
try{
URL url = new URL("your_url_from_model");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setDoOutput(true);
urlConnection.connect();
File sdCardPath = Environment.getExternalStorageDirectory().getAbsoluteFile();
String filename = "file_name.png";
File file = new File(sdCardPath,filename);
file.createNewFile();
FileOutputStream fileOutput = new FileOutputStream(file);
InputStream inputStream = urlConnection.getInputStream();
byte[] buffer = new byte[1024];
int bufferLength = 0;
while ( (bufferLength = inputStream.read(buffer)) > 0 ){
fileOutput.write(buffer, 0, bufferLength);
}
fileOutput.close();
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
ВАЖНО : Если вы хотите использовать опции HttpURLConnection, вам нужно запустить это в фоновом потоке.
Надеюсь, это вам поможет.