异步下载图片一

今天看了mars的视频学了一下异步下载图片。

下面我写下代码希望对大家有所帮助:

protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		imagineView = (ImageView) findViewById(R.id.imagieView);
		progressDialog = new ProgressDialog(this);
		progressDialog.setTitle("提示");
		progressDialog.setCancelable(false);
		progressDialog.setMessage("正在下载请耐心等待。。。");
		button = (Button) findViewById(R.id.button);
		button.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				new AsncTaskActivity().execute(PATH);
			}
		});
	}

	public class AsncTaskActivity extends AsyncTask<String, Integer, byte[]> {
		// 没运行前
		@Override
		protected void onPreExecute() {
			super.onPreExecute();
			progressDialog.show();
		}

		// 后台运行并且这里的返回值用于传送的参数
		@Override
		protected byte[] doInBackground(String... params) {
			HttpClient client = new DefaultHttpClient();
			HttpGet get = new HttpGet(params[0]);
			byte[] result = null;
			try {
				HttpResponse response = client.execute(get);
				if (response.getStatusLine().getStatusCode() == 200) {
					result = EntityUtils.toByteArray(response.getEntity());
				}
			} catch (ClientProtocolException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} finally {
				client.getConnectionManager().shutdown();
			}
			return result;
		}

		// 更新中,一般放进度条,不用就可以不写
		@Override
		protected void onProgressUpdate(Integer... values) {
			super.onProgressUpdate(values);
		}

		// 发送执行结果
		@Override
		protected void onPostExecute(byte[] result) {

			super.onPostExecute(result);
			// 从数组当中解码位图
			Bitmap map = BitmapFactory
					.decodeByteArray(result, 0, result.length);
			// 传入的是一个位图的对象
			imagineView.setImageBitmap(map);
			progressDialog.dismiss();
		}
	}

}

布局的话只有一个按钮和imagineView就不做介绍了。还有访问网络需要权限的。


下面是代码的连接:http://download.csdn.net/detail/kluing/7639213

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值