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); } }
原文地址:http://blog.csdn.net/zqs62761130/article/details/40622989