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

在 Android 应用中,使用 DownloadManager 类可以方便地实现图片下载功能。DownloadManager 类提供了一套完整的 API,可以管理下载任务,并提供下载状态和进度信息。

示例代码:

public void dow_imgone(final View view) {
//其他代码

                if (imageUrl != null) {
                    String fileName = 'image.jpg';
                    File downloadDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
                    
                    downloadImage(MainActivity.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);
    }

**在 dow_imgone 方法中调用 downloadImage 的正确方式是:**

```java
downloadImage(MainActivity.this, imageUrl, downloadDir.getAbsolutePath(), fileName);

解释:

  • downloadImage(MainActivity.this, imageUrl, downloadDir.getAbsolutePath(), fileName) 调用了 downloadImage 方法,传递了必要的参数,包括 Context 对象(当前 Activity)、图片 URL、下载目录的绝对路径和文件名。
  • downloadDir.getAbsolutePath() 获取了下载目录的绝对路径,以便 DownloadManager 类可以将下载的文件保存到正确的目录下。

其他注意事项:

  • 确保 android.permission.WRITE_EXTERNAL_STORAGE 权限已授予您的应用程序,以便能够将文件保存到外部存储。
  • 使用 DownloadManager 类可以方便地处理下载进度和状态,您可以在 onPostExecute 方法中获取下载结果。

总结:

本文介绍了在 Android 应用中使用 DownloadManager 类实现图片下载功能的步骤,并提供示例代码和最佳实践,帮助开发者快速构建高效的图片下载功能。

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

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

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