讲到http就必须要了解URI和URL

URI (uniform resource identifier)统一资源标志符;
URL(uniform resource location )统一资源定位符(或统一资源定位器);

能够理解成URL是URI的子集,URI是一抽象的标识符,URL能够理解成详细的标识符;仅仅要是网络上的资源就能找到唯一的URL。

文件夹结构

效果图

关键代码

HttpUtils.java类

package com.dzt.downloadimage.utils;import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;import android.graphics.Bitmap;
import android.graphics.BitmapFactory;/*** http工具类 http能够使用HttpURLConnection或HttpClient* * @author Administrator* @date 2014.05.10* @version V1.0*/
public class HttpUtils {/*** 获取网络图片* * @param urlString*            如:http://f.hiphotos.baidu.com/image/w%3D2048/sign=3*            b06d28fc91349547e1eef6462769358*            /d000baa1cd11728b22c9e62ccafcc3cec2fd2cd3.jpg* @return* @date 2014.05.10*/public static Bitmap getNetWorkBitmap(String urlString) {URL imgUrl = null;Bitmap bitmap = null;try {imgUrl = new URL(urlString);// 使用HttpURLConnection打开连接HttpURLConnection urlConn = (HttpURLConnection) imgUrl.openConnection();urlConn.setDoInput(true);urlConn.connect();// 将得到的数据转化成InputStreamInputStream is = urlConn.getInputStream();// 将InputStream转换成Bitmapbitmap = BitmapFactory.decodeStream(is);is.close();} catch (MalformedURLException e) {// TODO Auto-generated catch blockSystem.out.println("[getNetWorkBitmap->]MalformedURLException");e.printStackTrace();} catch (IOException e) {System.out.println("[getNetWorkBitmap->]IOException");e.printStackTrace();}return bitmap;}
}

使用到网络必须要加入权限和要有网络,否则下载失败

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

下载属于耗时的操作,假设放在UI线程出easy出现ANR;所以Android4.0之后对网络的操作不能放在UI线程,在这里我把下载放在AsyncTask处理。

class downloadImageTask extends AsyncTask<String, Integer, Boolean> {@Overrideprotected Boolean doInBackground(String... params) {// TODO Auto-generated method stubSystem.out.println("[downloadImageTask->]doInBackground "+ params[0]);mDownloadImage = HttpUtils.getNetWorkBitmap(params[0]);return true;}// 下载完毕回调@Overrideprotected void onPostExecute(Boolean result) {// TODO Auto-generated method stubimage.setImageBitmap(mDownloadImage);System.out.println("result = " + result);super.onPostExecute(result);}// 更新进度回调@Overrideprotected void onProgressUpdate(Integer... values) {// TODO Auto-generated method stubsuper.onProgressUpdate(values);}}

在onPostExecute和onProgressUpdate能够方便我们更新UI,当然也能够开一个线程处理,使用AsyncTask就更方便。

完整Demo:http://download.csdn.net/detail/deng0zhaotai/7326005

网络上一个不错的资源:http://square.github.io/okhttp/

OkHttp是Square的一款产品,是一个Java的开源HTTP和SPDYclient开发包,支持Android。Android自带的两个HTTP框架(HttpURLConnection和HttpClient),在各种Android OS版本号一直充斥着错误,能够使不论什么理智的开发人员走向崩溃。只是幸运地是,OkHttp攻克了这些问题。OkHttp是建立在HttpUrlConnection上,从Android代码库保持最新的修复,这意味着再也没有与旧操作系统版本号出现兼容性问题的噩梦

Android使用HttpURLConnection下载图片相关推荐

  1. Android通过url下载图片到手机本地并显示和删除本地ImageUtil工具类

    文章目录 布局 Activity BroadcastReceiver 文件工具类 图片工具类 Manifest MyApplication 完成代码下载 这里的demo是一个通过下载地址下载图片文件到 ...

  2. Android图片上传和下载,android 上传/下载 图片

    public class HttpAssist { private static final String TAG = "uploadFile"; private static f ...

  3. RXJava思维下载图片

    目录 为什么要学习RxJava? 什么是响应式编程? RXJava思维下载图片 为什么要学习RxJava? 改变思维(响应式编程思想),编程效率提升 官网:ReactiveX 什么是响应式编程? [根 ...

  4. 【Android 应用开发】Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载

    . 最新下载 : 2017年 8 月 28 日 : 平台 Android Studio 软件包 大小 SHA-1 校验和 Windows (64 位) android-studio-bundle-16 ...

  5. 【Android 应用开发】Android 开发环境下载地址

    此文章来自于[http://blog.csdn.net/shulianghan/article/details/38023959] 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+ ...

  6. android imageview 显示资源图片,ImageView显示网络图片资源

    Android ImageView如何加载网络图片资源有些事,可以看透,但不要看破;有些人,可以看穿,但不要戳穿;有些话,能不说就沉默,藏在心里更适合;有些伤,能不揭就不提起,无声忘记更明智. 用im ...

  7. Android中使用HttpURLConnection实现GET POST JSON数据与下载图片

    Android中使用HttpURLConnection实现GET POST JSON数据与下载图片 Android6.0中把Apache HTTP Client所有的包与类都标记为deprecated ...

  8. android多线程下载图片

    很多时候我们需要在Android设备上下载远程服务器上的图片进行显示,今天Android123整理出两种比较好的方法来实现远程图片的下载.    方法一.直接通过Android提供的Http类访问远程 ...

  9. Android框架——下载图片框架Fresco

    版权声明:本文为博主原创文章,未经博主允许不得转载.转载注明出处:Sunzxyong 流行的网络框架 目前流行的网络图片框架:  Picasso.Universal Image Loader.Voll ...

最新文章

  1. 学习笔记第三十一节课
  2. Springboot .properties或.yml配置文件读取pom.xml文件值
  3. java url 返回值_java提交url后返回值怎么取
  4. mybatis笔记之使用Mapper接口注解
  5. 南丁格尔邮票图片大全_【鉴赏】武夷山普通纪念币鉴赏(高清图片)
  6. bzoj 2429: [HAOI2006]聪明的猴子(最小生成树)
  7. DataScience:风控场景之金融评分卡模型构建—将逻辑回归LoR模型结果转为评分卡之详细攻略
  8. 苹果app的几种发布方式
  9. 如何写出一份优秀的简历和求职信?
  10. 判断字符串数组能否首尾相连
  11. 安卓手机APP 开发
  12. 上海亚商投顾:三大指数集体调整 消费板块逆市活跃
  13. CentOS7 通过 cups 与 Windows 共享 HP 1020PLUS 打印机无响应故障处理
  14. (三)pjsip 监听
  15. 线程池除了常见的4种拒绝策略
  16. Windows10下搭建jekyll环境
  17. 使用matlab制作音乐
  18. elasticsearch遇到的问题(一) 底层修改同义词典synonyms.txt未生效,将同义词加到分词器也未生效
  19. JAVA菜鸟成长记——JNDI
  20. 反渗透设备:反渗透设备工艺先进

热门文章

  1. 解析IPostBackEventHandler和WebForm的事件机制
  2. 线程同步--关键代码段(二)
  3. ElasticSearch7.2只能用localhost访问但不能用IP地址访问---ElasticSearch工作笔记027
  4. mycat集群执行带有join的sql语句时报错_can‘t find table define in schema_分片join---Linux运维工作笔记052
  5. C/C++线程与多线程工作笔记0005---c/c++中的wchar_t类型
  6. DataBseDesign工作笔记002---数据库表设计
  7. 在GNS3中如何让NETFLOW能够捕获到流量
  8. java object怎么拿字段_「Java面试秘籍」String不可变,如何理解
  9. 带父节点的平衡二叉树_平衡二叉树 通俗易懂
  10. 逻辑表达式是否合法_Linux shell 逻辑运算符、逻辑表达式详解