public void downloadImage(final ImageListener imageListener) {
if (post != null && getContext() != null) {
FutureTarget<File> future = Glide.with(getContext())
.downloadOnly()
.load(post.getPostImage().getUrl())
.submit(500, 500);
new GetFileTask(future, imageListener).execute();
}
}
public static class GetFileTask extends AsyncTask<Void, Void, Void> {
private ImageListener imageListener;
private FutureTarget<File> futureTarget;
public GetFileTask(FutureTarget<File> futureTarget, ImageListener imageListener) {
this.imageListener = imageListener;
this.futureTarget = futureTarget;
}
@Override protected Void doInBackground(Void... params) {
File file = null;
try {
file = futureTarget.get();
} catch (Exception e) {
e.printStackTrace();
imageListener.onFailure();
}
if (file != null) {
imageListener.onSaveSuccessful(Uri.parse(file.toURI().toString()));
} else {
imageListener.onFailure();
}
return null;
}
}
目前这段代码效果很好,它会下载gif,但我唯一的问题是文件扩展名不是.gif,它是<0。
将文件从设备中拉到我的计算机上,然后从.0重命名为.gif时,它可以完美地播放gif。
asGif()返回一个RequestBuilder,不推荐使用downloadOnly ..有没有人知道如何使用.gif文件扩展名请求保存此文件?