1.联网权限

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

2.主界面网络下载

package com.example.glidedownload;import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Environment;
import android.provider.MediaStore;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.animation.GlideAnimation;
import com.bumptech.glide.request.target.SimpleTarget;import java.io.File;
import java.util.Calendar;
import java.util.concurrent.ExecutionException;public class MainActivity extends AppCompatActivity implements View.OnClickListener {private Context mContext;private Button download;private ImageView img;private File target = null;// public static String PICTURE_s04 = "https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=339074543,1379749639&fm=26&gp=0.jpg";//   public static String PICTURE_04 = "https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1774420118,989846740&fm=26&gp=0.jpg";public static String PIsCTURE_01 = "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=1652123795,1945063222&fm=26&gp=0.jpg";public static String PIsssCTURE_01 = "https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=3574546774,2747680979&fm=11&gp=0.jpg";public static String PICTURE_01 = "https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2807156066,2009521216&fm=11&gp=0.jpg";private String path;/*    private static final String URL ="https://uploadbeta.com/api/pictures/random/?key=BingEverydayWallpaperPicture";*/public static String FILENAME = Environment.getExternalStorageDirectory() + "/Download/picture.jpg";private static final String TAG = "MainActivity";private static final int REQUEST_EXTERNAL_STORAGE = 1;private static String[] PERMISSIONS_STORAGE = {Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mContext = this;download = findViewById(R.id.download);img = findViewById(R.id.img);target = new File(FILENAME);download.setOnClickListener(this);verifyStoragePermissions(this);if (target.exists()) {Glide.with(mContext).load(target).into(img);}}/*** 在对sd卡进行读写操作之前调用这个方法* Checks if the app has permission to write to device storage* If the app does not has permission then the user will be prompted to grant permissions*/public static void verifyStoragePermissions(Activity activity) {// Check if we have write permissionint permission = ActivityCompat.checkSelfPermission(activity,Manifest.permission.WRITE_EXTERNAL_STORAGE);if (permission != PackageManager.PERMISSION_GRANTED) {// We don't have permission so prompt the userActivityCompat.requestPermissions(activity, PERMISSIONS_STORAGE,REQUEST_EXTERNAL_STORAGE);}}@Overridepublic void onClick(View v) {if (v.getId() == R.id.download) {new Thread(new MyRunnable()).start();}}class MyRunnable implements Runnable {@Overridepublic void run() {downloadImage();getImageView();}}private void getImageView() {//  val saveAs = "Your_Created_Image_File_Path"Uri contentUri = Uri.fromFile(new File(path));Log.e(TAG, "onGetMessage_like: " + path);Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, contentUri);sendBroadcast(mediaScanIntent);}private String downloadImage() {Glide.get(getApplicationContext()).clearDiskCache();File file = null;try {file = Glide.with(mContext).load(PICTURE_01).downloadOnly(96, 96).get();} catch (Exception e) {e.printStackTrace();}path = FileUtil.copy(file, target);//    MediaStore.Images.Media.insertImage(getContentResolver(),.getPath(),"cameraPhoto", "Camera Pic Sample App Took");runOnUiThread(new Runnable() {@Overridepublic void run() {Glide.with(mContext).load(target).diskCacheStrategy(DiskCacheStrategy.NONE).skipMemoryCache(true).into(img);}});return path;}}

3.文件类

package com.example.glidedownload;import android.os.Environment;
import android.util.Log;import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;/*** Created by zhc on 2019/12/19.*/
public class FileUtil {private static final String TAG = "FileUtil";/*** 复制文件* @param filename 文件名* @param bytes 数据*/public static void copy(String filename, byte[] bytes) {try {//如果手机已插入sd卡,且app具有读写sd卡的权限if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {FileOutputStream output = null;output = new FileOutputStream(filename);output.write(bytes);Log.i(TAG,"copy success, " + filename);output.close();} else {Log.i(TAG, "copy fail, " + filename);}} catch (IOException e) {e.printStackTrace();}}/*** 复制文件** @param source 输入文件* @param target 输出文件*/public static String copy(File source, File target) {FileInputStream fileInputStream = null;FileOutputStream fileOutputStream = null;try {fileInputStream = new FileInputStream(source);fileOutputStream = new FileOutputStream(target);byte[] buffer = new byte[1024];while (fileInputStream.read(buffer) > 0) {fileOutputStream.write(buffer);}} catch (Exception e) {e.printStackTrace();} finally {try {if (fileInputStream != null) {fileInputStream.close();}if (fileOutputStream != null) {fileOutputStream.close();}} catch (IOException e) {e.printStackTrace();}}return target.getPath();}}

4.打开相册,选择全部图片,可以看到刚刚下载的图片

end

android图片下载到本地相关推荐

  1. python 下载图片到内存卡_python-23:将图片下载到本地

    python-23 :将图片下载到本地 得到图片的网址之后我么你怎么将图片下载到本地 呢? 在 python 中我们使用 urllib 库里面的 urllib.urlretrieve() 函 数 又是 ...

  2. 微信小程序把图片下载到本地相册(附源码)

    微信小程序保存网络图片到本地实现流程: 1.把图片下载到本地相册 2.检查用户的授权状态(三种状态:未授权,已授权,未同意授权),判断是否授权保存图片的能力,如果是用户点击了不同意授权给小程序保存图片 ...

  3. Vue中实现图片下载到本地功能和导出(下载)excel文件功能:

    一.实现图片下载到本地功能 需求: 将勾选的列表项的id传给后台,让后台处理并下载对应的图片 1. 后台接口: 下载图片zip: GET /download 请求数据类型 application/x- ...

  4. 图片在canvas中显示,给canvas添加文字,文字描边,将canvas保存成图片下载到本地

    Canvas简介 HTML5新增标签 Canvas API(画布)是在HTML5中新增的标签用于在网页实时生成图像,并且可以操作图像内容,基本上它是一个可以用JavaScript操作的位图(bitma ...

  5. android图片下载器

    android图片下载器 页面布局 <span style="white-space:pre"> </span><TextViewandroid:la ...

  6. Android图片下载缓存库picasso解析

    picasso是Square公司开源的一个Android图形缓存库,地址http://square.github.io/picasso/,可以实现图片下载和缓存功能. picasso使用简单,如下 P ...

  7. Android 网络图片下载保存本地及插入系统相册

    一.保存图片到本地 public static void saveToSystemGallery(Context context, Bitmap bmp) {// 首先保存图片File appDir ...

  8. java爬虫下载图片到磁盘_java入门爬虫(爬取网页的图片下载到本地磁盘)

    java爬虫入门技术 我们需要用到http协议 从而建立java程序和网页的连接 URL url = new URL("https://www.ivsky.com/tupian/ziranf ...

  9. python下载图片被覆盖了_scrapy 将抓取内容中的图片下载到本地并替换内容中的原始图片...

    使用scrapy采集的文章里面有很多图片,都是远程图片,我想把这些远程图片都下载下来,然后把图片地址全都改成相对路径. 我想把里面的图片都下载到本地,然后再把路径保存再item 里面. def par ...

最新文章

  1. cms查询系统(一)背景以及需求分析与设计
  2. 【杂谈】爬虫基础与快速入门指南
  3. Solr5.3.1通过copyField设置多个field(字段)同时检索
  4. hadoop 环境搭建
  5. 数据拆分_数据拆分,偏方请拿好
  6. php充值卡,ecshop 充值卡功能_懒人程序
  7. 数据库中使用自增量字段与Guid字段作主键的性能对比(补充篇)-----转
  8. 超美响应式自适应引导页带音乐播放器源码
  9. 该怎么输出log?!
  10. 根据需求进行批量新增
  11. 国电集团:电子招投标每年节约成本10亿元
  12. 最新版微型商城2.0版网站源码 带有一键安装
  13. 给CSDN上原创文章添加版权声明(干货)
  14. Kubernetes证书类型和适用场景
  15. python you-get库
  16. SysML实例——盖浇饭
  17. imx6 android 最新,Re: IMX6D Android6.0 OTA 升级问题
  18. 华为 荣耀20 Andorid10 图片保存到相册 图片不刷新问题
  19. 随机变量与随机过程详解
  20. 已知有十六支男子足球队参加2008 北京奥运会。 写一个程序,把这16 支球队随机分为4 个组,每组4只球队。采用List集合和随机数。

热门文章

  1. 27岁转行软件测试,写给像我一样迷茫的人...
  2. lgo软件许可号许可码_软件是许可的还是出售的?
  3. 三阶魔方还原 two phase 算法 学习笔记
  4. 三星c9日历服务器未响应,本地化出色 三星盖乐世 C9 Pro 系统体验
  5. 测试问卷星问卷公开的问题
  6. 打开oracle dmp,dmp文件怎么打开?dmp是什么文件?
  7. 解决 MySQL 5.7.9版本sql_mode=only_full_group_by问题
  8. python 新闻摘要_每日新闻摘要:iPad Mini评论,AT&T首席执行官获得Robocall等等
  9. 历年 ESRI 开发者大会 网盘资料
  10. 奥地利经济部长表示无需监管区块链