加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Android使用HttpClient下载图片

发布时间:2020-12-14 23:29:15 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 HttpURLConnection与HttpClient的区别: /**?*?通过Get获取网页内容?*??*?@param?url?*????????????如:http://preview.quanjing.com/is002/ev601-025

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

HttpURLConnection与HttpClient的区别:
/**
	?*?通过Get获取网页内容
	?*?
	?*?@param?url
	?*????????????如:http://preview.quanjing.com/is002/ev601-025.jpg
	?*?@return
	?*?@throws?ClientProtocolException
	?*?@throws?IOException
	?*?@date?2014.05.10
	?*/
	public?static?Bitmap?getHttpGetBitmap(String?url)
			throws?ClientProtocolException,?IOException?{
		Bitmap?bitmap?=?null;
		//?新建一个默认的连接
		HttpClient?client?=?new?DefaultHttpClient();
		//?新建一个Get方法
		HttpGet?get?=?new?HttpGet(url);
		//?得到网络的回应
		HttpResponse?response?=?client.execute(get);

		//?如果服务器响应的是OK的话!
		if?(response.getStatusLine().getStatusCode()?==?HttpStatus.SC_OK)?{
			InputStream?is?=?response.getEntity().getContent();
			bitmap?=?BitmapFactory.decodeStream(is);
			is.close();
		}
		return?bitmap;
	}
<uses-permission?android:name="android.permission.INTERNET"?/>
package?com.dzt.downloadimage;

import?java.io.IOException;
import?java.net.MalformedURLException;

import?org.apache.http.client.ClientProtocolException;

import?android.app.Activity;
import?android.graphics.Bitmap;
import?android.os.AsyncTask;
import?android.os.Bundle;
import?android.view.View;
import?android.view.View.OnClickListener;
import?android.widget.Button;
import?android.widget.ImageView;

import?com.dzt.downloadimage.utils.HttpUtils;

public?class?MainActivity?extends?Activity?implements?OnClickListener?{

	private?Bitmap?mDownloadImage?=?null;
	private?ImageView?image?=?null;
	private?downloadImageTask?task;
	private?boolean?_isExe?=?false;

	@Override
	protected?void?onCreate(Bundle?savedInstanceState)?{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		initWidgets();
		task?=?new?downloadImageTask();
	}

	@Override
	protected?void?onStop()?{
		//?TODO?Auto-generated?method?stub
		super.onStop();
		if?(_isExe)?{
			task.cancel(true);?//?取消操作
		}
	}

	private?void?initWidgets()?{
		image?=?(ImageView)?findViewById(R.id.img);
		Button?btn?=?(Button)?findViewById(R.id.download_btn);
		btn.setOnClickListener(this);
	}

	@Override
	public?void?onClick(View?v)?{
		//?TODO?Auto-generated?method?stub
		switch?(v.getId())?{
		case?R.id.download_btn:
			if?(!_isExe)?{
				task.execute("http://preview.quanjing.com/is002/ev601-025.jpg");?//?执行异步操作
				_isExe?=?true;
			}
			break;

		default:
			break;
		}
	}

	class?downloadImageTask?extends?AsyncTask<String,?Integer,?Boolean>?{

		@Override
		protected?Boolean?doInBackground(String...?params)?{
			//?TODO?Auto-generated?method?stub
			System.out.println("[downloadImageTask->]doInBackground?"
					+?params[0]);
			//?try?{
			//?mDownloadImage?=?HttpUtils.getNetWorkBitmap(params[0]);
			//?}?catch?(MalformedURLException?e)?{
			//?//?TODO?Auto-generated?catch?block
			//?e.printStackTrace();
			//?}?catch?(IOException?e)?{
			//?//?TODO?Auto-generated?catch?block
			//?e.printStackTrace();
			//?}
			try?{
				mDownloadImage?=?HttpUtils.getHttpGetBitmap(params[0]);
			}?catch?(ClientProtocolException?e)?{
				//?TODO?Auto-generated?catch?block
				e.printStackTrace();
			}?catch?(IOException?e)?{
				//?TODO?Auto-generated?catch?block
				e.printStackTrace();
			}
			return?true;
		}

		//?下载完成回调
		@Override
		protected?void?onPostExecute(Boolean?result)?{
			//?TODO?Auto-generated?method?stub
			image.setImageBitmap(mDownloadImage);
			System.out.println("result?=?"?+?result);
			super.onPostExecute(result);
		}

		//?更新进度回调
		@Override
		protected?void?onProgressUpdate(Integer...?values)?{
			//?TODO?Auto-generated?method?stub
			super.onProgressUpdate(values);
		}

	}
}

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读