欢迎来到天天文库
浏览记录
ID:40741398
大小:21.50 KB
页数:4页
时间:2019-08-07
《AsynTast异步加载图片》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、AsyncTast加载本地图片AsyncTask不只是可以用来异步加载图片,还可以异步做很多的任务,只要是耗时的操作都可以写到doInBackground()方法里面,在onpostExcute()方法里面更新ui界面。AyncTast加载本地图片:classloadImageextendsAsyncTask{@OverrideprotectedObjectdoInBackground(Object...params){Bitmapimg_head=null;imgs=newArrayList();Cursorc=mcr.query(Me
2、diaStore.Images.Media.EXTERNAL_CONTENT_URI,newString[]{"*"},null,null,null);while(c.moveToNext()){Stringtitle=c.getString(c.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME));//图片全名Stringpath=c.getString(c.getColumnIndex(MediaStore.Images.Media.DATA));Intsize=c.getInt(c.getColumnIndex(MediaStore.
3、Images.Media.SIZE));Bitmapimg_head=getImageThumbnail(path,70,70);Imageimg=newImage(title,path,size,img_head);publishProgress(img);}c.close();Returnnull;}privateBitmapgetImageThumbnail(StringimagePath,intwidth,intheight){Bitmapbitmap=null;BitmapFactory.Optionsoptions=newBitmapFactory.Options();option
4、s.inJustDecodeBounds=true;//获取这个图片的宽和高,注意此处的bitmap为nullbitmap=BitmapFactory.decodeFile(imagePath,options);options.inJustDecodeBounds=false;//设为false//计算缩放比inth=options.outHeight;intw=options.outWidth;intbeWidth=w/width;intbeHeight=h/height;intbe=1;if(beWidth5、f(be<=0){be=1;}options.inSampleSize=be;//重新读入图片,读取缩放后的bitmap,注意这次要把options.inJustDecodeBounds设为falsebitmap=BitmapFactory.decodeFile(imagePath,options);//利用ThumbnailUtils来创建缩略图,这里要指定要缩放哪个Bitmap对象bitmap=ThumbnailUtils.extractThumbnail(bitmap,width,height,ThumbnailUtils.OPTIONS_RECYCLE_INPUT);returnbit6、map;}@OverrideprotectedvoidonProgressUpdate(Image...values){super.onProgressUpdate(values);}@OverrideprotectedvoidonPostExecute(Objectresult){//TODOAuto-generatedmethodstubsuper.onPostExecute(result);}}用来加载本地图片只是其中的一个应用,比如还可以加载网络图片,只要是涉及到耗时操作都可以哟个AsyncTast。
5、f(be<=0){be=1;}options.inSampleSize=be;//重新读入图片,读取缩放后的bitmap,注意这次要把options.inJustDecodeBounds设为falsebitmap=BitmapFactory.decodeFile(imagePath,options);//利用ThumbnailUtils来创建缩略图,这里要指定要缩放哪个Bitmap对象bitmap=ThumbnailUtils.extractThumbnail(bitmap,width,height,ThumbnailUtils.OPTIONS_RECYCLE_INPUT);returnbit
6、map;}@OverrideprotectedvoidonProgressUpdate(Image...values){super.onProgressUpdate(values);}@OverrideprotectedvoidonPostExecute(Objectresult){//TODOAuto-generatedmethodstubsuper.onPostExecute(result);}}用来加载本地图片只是其中的一个应用,比如还可以加载网络图片,只要是涉及到耗时操作都可以哟个AsyncTast。
此文档下载收益归作者所有