下载图片文件更新图库工具类
2016-12-23 14:18
323 查看
public void downloadFile(final String url) { AsyncHttpClient client = new AsyncHttpClient(); client.get(url, new AsyncHttpResponseHandler() { @Override public void onSuccess(int statusCode, cz.msebera.android.httpclient.Header[] headers, byte[] binaryData) { try { saveImg(url, binaryData); } catch (IOException e) { e.printStackTrace(); } } @Override public void onFailure(int statusCode, cz.msebera.android.httpclient.Header[] headers, byte[] binaryData, Throwable error) { Toast.makeText(this, "下载失败",Toast.LENGTH_LONG).show(); } }); } public void saveImg(String url, byte[] bytes) throws IOException { if (!isMounted()) return; File dir = new File(CACHEDIR); if (!dir.exists()) dir.mkdirs(); FileOutputStream fos = new FileOutputStream(new File(dir, getName(url))); fos.write(bytes); fos.close(); //更新图库 Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); Uri uri = Uri.fromFile(new File(dir, getName(url))); intent.setData(uri); sendBroadcast(intent); } public static boolean isMounted() { return Environment.MEDIA_MOUNTED.equals( Environment.getExternalStorageState()); } public String getName(String url) { return md5(url) + ".png"; } public String md5(String stringContent) { String ret = null; if (stringContent != null) { try { MessageDigest digest = MessageDigest.getInstance("MD5"); byte[] data = digest.digest(stringContent.getBytes()); BigInteger bigInteger = new BigInteger(1, data); ret = bigInteger.toString(16); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } } return ret; }
相关文章推荐
- 暴力破解工具Hydra
- centos7使用传统网卡名
- C#:额外知识点
- 使用Twitter Bootstrap的五大理由
- ELK linux 部署手机 centos6.5
- neutron的基本原理
- js脚本执行顺序
- 单链表的头插法与尾插法
- 序章
- man不到库函数
- MacOS 屏幕截图的一些设置
- MyBatis入门学习教程-优化MyBatis配置文件中的配置
- 程序员面试金典: 9.3栈与队列 3.4汉诺塔问题
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- jQuery实现禁用右键
- 友盟收集的手机信息
- libusb异步中断传输使用说明
- 网络编程中的关键问题总结
- css让容器水平垂直居中的n种方式
- 最小堆MinHeap源码