Android 异步从网络上下载图片
2014-08-13 00:03
344 查看
packagecom.example.android_asynctask; importorg.apache.http.HttpEntity; importorg.apache.http.HttpResponse; importorg.apache.http.client.HttpClient; importorg.apache.http.client.methods.HttpGet; importorg.apache.http.impl.client.DefaultHttpClient; importorg.apache.http.util.EntityUtils; importandroid.os.AsyncTask; importandroid.os.Bundle; importandroid.app.Activity; importandroid.app.ProgressDialog; importandroid.graphics.Bitmap; importandroid.graphics.BitmapFactory; importandroid.view.Menu; importandroid.view.View; importandroid.widget.Button; importandroid.widget.ImageView; publicclassMainActivityextendsActivity{ privateButtonbutton; privateImageViewimageView; privateStringimage_Path="http://e.hiphotos.baidu.com/image/pic/item/2fdda3cc7cd98d10b510fdea233fb80e7aec9021.jpg"; privateProgressDialogdialog; @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button=(Button)findViewById(R.id.button1); imageView=(ImageView)findViewById(R.id.imageView1); dialog=newProgressDialog(this); dialog.setTitle("提示信息"); dialog.setMessage("正在下载,请稍候..."); button.setOnClickListener(newView.OnClickListener(){ @Override publicvoidonClick(Viewarg0){ //TODOAuto-generatedmethodstub newMYTask().execute(image_Path); } }); } /** *使用异步任务的规则:1、申明的类继承AsyncTask标注三个参数的类型 *2、第一个参数表示要执行的任务,通常是网络的路径;第二个参数表示进度的刻度,第三个参数表示任务执行的返回结果 * *@authorliende * */ publicclassMYTaskextendsAsyncTask<String,Void,Bitmap>{ /** *表示任务执行之前的操作 */ @Override protectedvoidonPreExecute(){ //TODOAuto-generatedmethodstub super.onPreExecute(); dialog.show(); } /** *主要是完成耗时的操作 */ @Override protectedBitmapdoInBackground(String...arg0){ //TODOAuto-generatedmethodstub //使用网络连接类HttpClient类王城对网络数据的提取 HttpClienthttpClient=newDefaultHttpClient(); HttpGethttpGet=newHttpGet(arg0[0]); Bitmapbitmap=null; try{ HttpResponsehttpResponse=httpClient.execute(httpGet); if(httpResponse.getStatusLine().getStatusCode()==200){ HttpEntityhttpEntity=httpResponse.getEntity(); byte[]data=EntityUtils.toByteArray(httpEntity); bitmap=BitmapFactory .decodeByteArray(data,0,data.length); } }catch(Exceptione){ //TODO:handleexception } returnbitmap; } /** *主要是更新UI的操作 */ @Override protectedvoidonPostExecute(Bitmapresult){ //TODOAuto-generatedmethodstub super.onPostExecute(result); imageView.setImageBitmap(result); dialog.dismiss(); } } @Override publicbooleanonCreateOptionsMenu(Menumenu){ //Inflatethemenu;thisaddsitemstotheactionbarifitispresent. getMenuInflater().inflate(R.menu.main,menu); returntrue; } } <uses-permissionandroid:name="android.permission.INTERNET"/>
相关文章推荐
- Android异步下载网络图片&android解析xml文件的方式&使用Adapter为ListView提供数据
- Android异步下载网络图片
- Android异步下载网络图片(其二)
- Android异步下载网络图片
- android异步下载网络图片(其三)
- Android异步下载网络图片&android解析xml文件的方式&使用Adapter为ListView提供数据
- Android异步下载网络图片(其三)
- android异步下载网络图片(其二)
- Android异步下载网络图片(其一)
- Android异步下载网络图片(其一)
- Android异步下载网络图片(其一)
- android异步从网络下载图片,并缓存到本地
- Android异步下载网络图片
- Android异步下载网络图片(其二)
- Android异步从网络下载图片并且缓存图片到本地的demo
- Android异步从网络下载图片并且缓存图片到本地的demo
- Android异步下载网络图片(其二:AsyncTask)
- android异步下载网络图片(其二)
- android异步下载网络图片(其一)
- Android异步下载网络图片(其一)