2中方法:

1.

public byte[] downloadResource(Context context, String url)
throws ClientProtocolException, IOException {
isStop = false;
ByteArrayBuffer buffer = null;
HttpGet hp = new HttpGet(url);
httpClient = new DefaultHttpClient();
String netType = isNetType(context);
if (netType != null & netType.equals("cmwap")) {
HttpHost proxy = new HttpHost("10.0.0.172", 80);
httpClient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY,
proxy);
}
HttpConnectionParams.setConnectionTimeout(httpClient.getParams(),
5 * 1000);
HttpConnectionParams.setSoTimeout(httpClient.getParams(), 60 * 1000); HttpResponse response = httpClient.execute(hp);
if (response.getStatusLine().getStatusCode() == 200) {
inputstream = response.getEntity().getContent();
if (inputstream != null) {
int i = (int) response.getEntity().getContentLength();
buffer = new ByteArrayBuffer(1024);
byte[] tmp = new byte[1024];
int len;
while (((len = inputstream.read(tmp)) != -1)
&& (false == isStop)) {
buffer.append(tmp, 0, len);
}
}
cancel();
}
return buffer.toByteArray();
}

调用方法:

protected Bitmap doInBackground(WonderfulprogramInfo... params)
{
Bitmap bitmap = null;
try
{
String urls = Constant.url + params[0].getWonderfulImgUrl();
boolean isExists = Files.compare(urls);
if (isExists == false)
{ //网络下载图片数据
Net net = new Net();
byte[] data = net.downloadResource(HomeActivity.this, urls);
bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
imagesCache.put(urls, bitmap); // 把下载好的图片保存到缓存中
Files.saveImage(urls, data);
} else
{ //本地读取图片数据
byte[] data = Files.readImage(urls);
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inPreferredConfig = Bitmap.Config.RGB_565;
opt.inPurgeable = true;
opt.inInputShareable = true;
// //获取资源图片
// InputStream is =
// context.getResources().openRawResource(resId);
// return BitmapFactory.decodeStream(is,null,opt); bitmap = BitmapFactory.decodeByteArray(data, 0, data.length, opt);
imagesCache.put(urls, bitmap); // 把下载好的图片保存到缓存中
}

方法二:

class DownLoadTask extends AsyncTask<String, Void, Bitmap> {
private ImageView imageView;
private Integer positions; public DownLoadTask(ImageView view, int position) {
imageView = view;
this.positions = position;
} protected Bitmap doInBackground(String... params) {
URL url;
try {
url = new URL(params[0]);
InputStream is = url.openStream();
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inPreferredConfig = Bitmap.Config.RGB_565;
opt.inPurgeable = true;
opt.inInputShareable = true;
// 获取资源图片
Bitmap bitmap = BitmapFactory.decodeStream(is, null, opt);
HomeActivity.TopGalleryBitmap.put(positions, bitmap);
return bitmap;
} catch (OutOfMemoryError err) {
err.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} return null;
} protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
imageView.setImageBitmap(result);
}
}

Android 网络下载图片的更多相关文章

  1. Android网络下载图片

    package net.learn2develop.Networking; import android.app.Activity; import android.os.Bundle; import ...

  2. Android异步下载图片并且缓存图片到本地

    Android异步下载图片并且缓存图片到本地 在Android开发中我们经常有这样的需求,从服务器上下载xml或者JSON类型的数据,其中包括一些图片资源,本demo模拟了这个需求,从网络上加载XML ...

  3. android网络编程--从网络下载图片,并保存到内存卡

    功能1:从网络上取得的图片显示到imageview上面,生成Bitmap时有两种方法,一种是先转换为byte[],再生成bitmap:一种是直接用InputStream生成bitmap.功能2:点击按 ...

  4. android开发--下载图片

    1.背景介绍 网络上图片的请求,是我们最常见的网络请求之一,不亚于对json/xml数据的请求.一般要展示给用户看的,都不会是纯粹的文字,往往都是图文信息.而在移动互联网时代,图文又往往需要最新的资讯 ...

  5. android 多线程下载图片

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

  6. android 73 下载图片

    package com.ithiema.imageviewer; import java.io.InputStream; import java.net.HttpURLConnection; impo ...

  7. 小记:对Android网络下载工具的初步封装!(包括json,字符串下载(volley),和图片下载(glide))

    import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkIn ...

  8. Android下载图片/调用系统相机拍照、显示并保存到本地

    package com.example.testhttpget; import java.io.BufferedReader; import java.io.FileNotFoundException ...

  9. iOS-UIImageView载入网络下载的图片(异步+多线程)

    最原始的载入网络下载的图片方式: //最原始载入网络图片方法,相当堵塞主线程,界面卡顿 -(void)setImageWithURL:(NSString *)imageDownloadUrl{ UII ...

随机推荐

  1. redis的主从配置 扩容

    由于redis的集群功能没有完全编写好,见:http://redis.io/topics/cluster-spec 集群只有测试版的第8个版本redis3.0.0 见 http://redis.io/ ...

  2. thinkphp5(tp5)中success跳转页面和弹窗问题解决

    自己做了一个form页面,对其操作后,根据$this->success('提示信息',''),执行后是通过笑脸页面跳转,而不是在本页弹框后刷新.源码里带的原来的例子是弹出框刷新,为什么我自己做的 ...

  3. Excel实现二级菜单联动

    项目中需要导入一个Excel模板需要实现二级联动,现记录如下: 首先看一下原始数据,原始信息在一张工作表,第一行是省市名称,下面的若干行为对应省市下面的地名和区名.需要在另外一张工作表中A列和B列建立 ...

  4. Python学习(三)流程控制

    Python流程控制 本章介绍 python 的基础流程控制.包括 if 条件语句.for 循环 和 while 循环语句: continue 及 break 的用法等. 基本用法与 C 和 Java ...

  5. 为什么Domain controller上的time synchronization非常重要?

    虚拟机默认情况下所拥有的资源都是不同的, 比如说CPU clock. 在一个忙碌的系统中, 虚拟机甚至可能在很短的一段时间内被拒绝分配资源给它, 这种情况还可能发生在高系统负荷, VMotion, B ...

  6. [Python爬虫] 之三:Selenium 调用IEDriverServer 抓取数据

    接着上一遍,在用Selenium+phantomjs 抓取数据过程中发现,有时候抓取不到,所以又测试了用Selenium+浏览器驱动的方式:具体代码如下: #coding=utf-8import os ...

  7. 【云计算】jenkins,docker,mesos,marathon,k8s相关资料

    参考资料: 基于Apache Mesos 构建高可靠,高可用的Jenkins CI:http://blog.csdn.net/ebay/article/details/43529401 Docker ...

  8. [置顶] All about control file in Oracle Database

    --数据库实例启动的三个阶段: NOMOUNT(START):打开初始化参数文件 MOUNT:打开控制文件 OPEN:打开数据文件和日志文件 --控制文件 控制文件的作用:管理数据库的状态和描述数据库 ...

  9. OpenCV学习笔记(四十)——再谈OpenCV数据结构Mat详解

    原文:http://blog.csdn.net/yang_xian521/article/details/7107786 我记得开始接触OpenCV就是因为一个算法里面需要2维动态数组,那时候看cor ...

  10. 【pyhon】nvshens图片批量下载爬虫1.01

    # nvshens图片批量下载爬虫1.01 # 原先版本在遇到网络故障时回下载不全,这回更改了模式使得下载不成就重新下载,直到全部下载完毕 from bs4 import BeautifulSoup ...