Android开发教程下载网络图片到相册

287 阅读1分钟
Android开发教程下载网络图片到相册

下载网络图片到相册,还要适配各种机型,不容易

一、思路:

用HttpURLConnection下载图片,用contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values)刷新到图库/相册

二、效果图:

在这里插入图片描述

三、关键代码:
public class MainActivity extends AppCompatActivity {

    private Context mContext;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mContext = this;
        String imageHttpUrl = "https://i0.hdslb.com/bfs/article/ae851244f701be6b50c748d2ed7a862115336e38.jpg";
        findViewById(R.id.tv_start_down).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    String path = Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q ?
                            getSandboxPath(mContext,"invite_img") : Environment.getExternalStorageDirectory().getAbsolutePath() + "/DCIM/xianghui/invite_img";

                    ImageUtils.saveImageTask(
                            mContext,
                            imageHttpUrl,
                            path,
                            "inviteImg",
                            "保存成功"
                    );

                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }


    public String getSandboxPath(Context mContext,String pathDir){
        String pathStr = "";
        File file = new File(mContext.getExternalFilesDir("").getAbsolutePath(),pathDir);
        if (!file.exists()){
            file.mkdirs();
        }
        pathStr = file.getAbsolutePath();
        return pathStr;
    }



}
四、项目demo源码结构图:

在这里插入图片描述

有问题或者需要完整源码demo的可以看简介联系我,也可以私信我,我每天都看私信的