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);
}

代码说明:

  1. 使用 DownloadManager 类来下载图片。
  2. 创建 DownloadManager.Request 对象,设置下载参数,例如下载地址、文件名、保存路径等。
  3. 使用 DownloadManager.enqueue() 方法将下载任务添加到下载队列中。
  4. 在下载完成后,系统会自动显示通知,提醒用户下载完成。

注意:

  1. 需要在 AndroidManifest.xml 文件中添加 android.permission.WRITE_EXTERNAL_STORAGE 权限,以允许应用写入外部存储设备。
  2. 确保下载地址 imageUrl 有效且指向一个图片文件。
  3. 可以根据实际需求调整下载参数,例如下载速度限制、通知样式等。

其他提示:

  1. 使用 DownloadManager 可以方便地管理下载任务,例如查看下载进度、暂停下载、恢复下载等。
  2. 如果需要在下载过程中显示进度条,可以使用 DownloadManager.Query 类查询下载进度,并更新进度条。
  3. 还可以使用第三方库来实现图片下载功能,例如 GlidePicasso 等。

希望本文对您有所帮助。如果您有任何疑问,请随时留言。

Android 图片下载功能实现 - 使用 DownloadManager

原文地址: https://www.cveoy.top/t/topic/csnR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录