Android下载网络图片并保存到相册

news/2024/11/17 6:55:08/

下载类,可以url下载到相册,记得在清单加权限,6.0代码动态加权限判断,下载图片要在子线程中下载,下载完后广播更新相册

在清单文件里面添加权限:

    <!--网络--><uses-permission android:name="android.permission.INTERNET" /><!-- 读写文件 --><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

下载的url的工具类:

/*** Created by YuShuangPing on 2018/12/12.*/
public class DonwloadSaveImg {private static Context context;private static String filePath;private static Bitmap mBitmap;private static String mSaveMessage = "失败";private final static String TAG = "PictureActivity";private static ProgressDialog mSaveDialog = null;public static void donwloadImg(Context contexts, String filePaths) {context = contexts;filePath = filePaths;mSaveDialog = ProgressDialog.show(context, "保存图片", "图片正在保存中,请稍等...", true);new Thread(saveFileRunnable).start();}private static Runnable saveFileRunnable = new Runnable() {@Overridepublic void run() {try {if (!TextUtils.isEmpty(filePath)) { //网络图片// 对资源链接URL url = new URL(filePath);//打开输入流InputStream inputStream = url.openStream();//对网上资源进行下载转换位图图片mBitmap = BitmapFactory.decodeStream(inputStream);inputStream.close();}saveFile(mBitmap);mSaveMessage = "图片保存成功!";} catch (IOException e) {mSaveMessage = "图片保存失败!";e.printStackTrace();} catch (Exception e) {e.printStackTrace();}messageHandler.sendMessage(messageHandler.obtainMessage());}};private static Handler messageHandler = new Handler() {@Overridepublic void handleMessage(Message msg) {mSaveDialog.dismiss();Log.d(TAG, mSaveMessage);Toast.makeText(context, mSaveMessage, Toast.LENGTH_SHORT).show();}};/*** 保存图片* @param bm* @throws IOException*/public static void saveFile(Bitmap bm ) throws IOException {File dirFile = new File(Environment.getExternalStorageDirectory().getPath());if (!dirFile.exists()) {dirFile.mkdir();}String fileName = UUID.randomUUID().toString() + ".jpg";File myCaptureFile = new File(Environment.getExternalStorageDirectory().getPath() + "/DCIM/Camera/" + fileName);BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile));bm.compress(Bitmap.CompressFormat.JPEG, 80, bos);bos.flush();bos.close();//把图片保存后声明这个广播事件通知系统相册有新图片到来Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);Uri uri = Uri.fromFile(myCaptureFile);intent.setData(uri);context.sendBroadcast(intent);}
}

在Activity中进行调用:

public class DownloadSavePictureActivity extends AppCompatActivity {private Button btn_pic;private Bitmap bitmap;private String Path="http://39.106.39.112:33/public/static/img/qrcode/MAB214ef69e7a5102f86ca8b0136224117.png";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_download_save_picture);btn_pic=findViewById(R.id.btn_pic);btn_pic.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {ImgDonwloads.donwloadImg(DownloadSavePictureActivity.this,Path);//iPath}});}
}

 注意:对于Android6.0以上的手机一定要判断相应的权限是否开启

 

 


http://www.ppmy.cn/news/861210.html

相关文章

html5 plus 图片下载保存到手机相册

html5plus 接口文档&#xff1a;http://www.html5plus.org/doc/zh_cn/webview.html vue 集成html5plus方法&#xff1a;https://blog.csdn.net/weixin_38641550/article/details/85235297 vue集成plus demo : https://github.com/Shaxin742/vue-webapp-demo 这个是基于html…

网上下载图片并保存到手机里面

MainActivity 里面用的是异步任务下载的图片 package com.jj.rikao_15;import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.AsyncTask; import android.os.Bundle; import android.support.v7.app.A…

数学建模-拟合算法

这里的线性函数指的是参数为线性&#xff0c;而不是变量为线性。 yabx^2是线性的 用的比较多的是多项式拟合和自己定义的 拓展资料&#xff1a;工具箱曲线拟合类型评价解释 文件-导出代码 自动生成的代码修改图名和标签 如果不收敛&#xff0c;自己要修改初始值&#xf…

综合小实验

第一步&#xff1a;计划IP R1的环回&#xff1a;192.168.1.0/28 R2的环回&#xff1a;192.168.1.16/28 R123的O/O/0接口&#xff1a;192.168.1.32/28 R3-4&#xff1a;192.168.1.128/30 Vlan2&#xff1a;192.168.1.48/28 vlan3&#xff1a;192.168.1.64/28 192.168.1.0/24 0区…

Active Directory域服务

1.什么是域服务域内的directory database(目录数据库)被用来存储用户账号&#xff0c;计算机账户&#xff0c;打印机与共享文件夹等对象&#xff0c;而提供目录服务的组件就是Active Directory域服务(Active Directory Domin Service,AD DS)它负责目录数据库的存储、新建、删除…

[个人小记]解决无法与域的active directory域控制器连接

解决无法与域的active directory域控制器连接 一、我的情况二、解决办法 一、我的情况 两台虚拟机&#xff0c;一台是域控&#xff0c;一台是应用服务器&#xff0c;确定常规配置是ok的没有什么问题。 二、解决办法 1、虚机网卡设置桥接并设置好IP使两台虚机在同一个局域网…

3.2.1 安装Active Directory

3.2.1 安装Active Directory 域控制器是通过安装Active Directory来创建的。执行安装Active Directory的账户必须是本地计算机Administrators组的成员&#xff0c;或者是被委派有Administrators的权限。如果将此计算机加 入域&#xff0c;Domain Admins组的成员也可以执行此过…

企业 Active Directory 自助服务

您的企业是否正在寻找一个全面的 Active Directory 自助服务解决方案&#xff0c;使用户能够在没有帮助台帮助的情况下满足自己的 Active Directory 需求&#xff1f;ADSelfService Plus 了解您的安全问题&#xff0c;并提供基于审批的自助服务工作流功能&#xff0c;使管理员能…