Android 图片下载功能实现 - 使用 DownloadManager
Android 图片下载功能实现 - 使用 DownloadManager
本文介绍了如何使用 Android 的 DownloadManager 实现图片下载功能,并提供了完整的代码示例。
public void dow_imgone(final View view) {
//其他代码
try {
if (imageUrl != null) {
String fileName = 'image.jpg';
File downloadDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
downloadImage(this, imageUrl, downloadDir.getAbsolutePath(), fileName);
return '获取链接成功' + imageUrl + '文件将保存到:' + downloadDir;
} else {
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText('imageUrl', imageUrl);
clipboard.setPrimaryClip(clip);
return '未能提取到图片地址' + imageUrl;
}
} catch (IOException e) {
e.printStackTrace();
return '下载失败';
}
}
@Override
protected void onPostExecute(String result) {
Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show();
}
}.execute();
}
public void downloadImage(Context context, String url, String downloadDir, String fileName) {
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE)
.setAllowedOverRoaming(false)
.setTitle(fileName)
.setMimeType('image/jpeg')
.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
.setDestinationInExternalPublicDir(downloadDir, fileName);
DownloadManager downloadManager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
downloadManager.enqueue(request);
}
代码说明:
- 使用
DownloadManager类来下载图片。 - 创建
DownloadManager.Request对象,设置下载参数,例如下载地址、文件名、保存路径等。 - 使用
DownloadManager.enqueue()方法将下载任务添加到下载队列中。 - 在下载完成后,系统会自动显示通知,提醒用户下载完成。
注意:
- 需要在
AndroidManifest.xml文件中添加android.permission.WRITE_EXTERNAL_STORAGE权限,以允许应用写入外部存储设备。 - 确保下载地址
imageUrl有效且指向一个图片文件。 - 可以根据实际需求调整下载参数,例如下载速度限制、通知样式等。
其他提示:
- 使用
DownloadManager可以方便地管理下载任务,例如查看下载进度、暂停下载、恢复下载等。 - 如果需要在下载过程中显示进度条,可以使用
DownloadManager.Query类查询下载进度,并更新进度条。 - 还可以使用第三方库来实现图片下载功能,例如
Glide、Picasso等。
希望本文对您有所帮助。如果您有任何疑问,请随时留言。
原文地址: https://www.cveoy.top/t/topic/csnR 著作权归作者所有。请勿转载和采集!