Android保存网络图片到本地

在Android开发中,有时候我们需要将网络上的图片保存到本地。这在很多场景下都是很有用的,比如用户想要保存某张图片到相册中。本文将介绍如何在Android应用中实现保存网络图片到本地的功能。

实现步骤

1. 添加权限

首先,在AndroidManifest.xml文件中添加网络权限和文件读写权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

2. 下载图片

使用HttpURLConnection来下载网络图片,并保存到本地文件中:

URL url = new URL("
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.connect();

InputStream input = connection.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(input);

File file = new File(Environment.getExternalStorageDirectory(), "image.jpg");
FileOutputStream output = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, output);

output.close();
connection.disconnect();

3. 刷新相册

保存图片到本地文件后,需要通知系统刷新相册,以便在相册中看到新保存的图片。

MediaScannerConnection.scanFile(context,
        new String[]{file.getAbsolutePath()},
        null,
        new MediaScannerConnection.OnScanCompletedListener() {
            @Override
            public void onScanCompleted(String path, Uri uri) {
                // 刷新相册成功
            }
        });

流程图

flowchart TD;
    A(开始) --> B(添加权限)
    B --> C(下载图片)
    C --> D(刷新相册)
    D --> E(结束)

总结

通过上面的步骤,我们可以实现在Android应用中保存网络图片到本地的功能。首先需要添加网络权限和文件读写权限,然后使用HttpURLConnection下载图片并保存到本地文件,最后刷新相册即可。这样用户就可以方便地保存网络图片到本地了。如果有其他问题或需求,可以根据实际情况进行相应的修改和扩展。希望本文对您有所帮助!