异步下载图片一

来源:互联网 发布:国泰君安富易软件 编辑:程序博客网 时间:2024/04/27 17:11

今天看了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() {@Overridepublic void onClick(View v) {new AsncTaskActivity().execute(PATH);}});}public class AsncTaskActivity extends AsyncTask<String, Integer, byte[]> {// 没运行前@Overrideprotected void onPreExecute() {super.onPreExecute();progressDialog.show();}// 后台运行并且这里的返回值用于传送的参数@Overrideprotected 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 blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {client.getConnectionManager().shutdown();}return result;}// 更新中,一般放进度条,不用就可以不写@Overrideprotected void onProgressUpdate(Integer... values) {super.onProgressUpdate(values);}// 发送执行结果@Overrideprotected 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
原创粉丝点击