Android 網路下載圖片

來源:互聯網
上載者:User

標籤:android   網狀圖片   下載   

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 網路下載圖片

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.