网络请求实现上拉加载以及图片修剪,imagelod配置er.doc_第1页
网络请求实现上拉加载以及图片修剪,imagelod配置er.doc_第2页
网络请求实现上拉加载以及图片修剪,imagelod配置er.doc_第3页
网络请求实现上拉加载以及图片修剪,imagelod配置er.doc_第4页
网络请求实现上拉加载以及图片修剪,imagelod配置er.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

item_listview.xml Footview.xml MyAdapter.package adapter;import java.util.List;import com.example.jiazai.R;import com.example.vo.MusicList;import com.lidroid.xutils.BitmapUtils;import com.nostra13.universalimageloader.core.ImageLoader;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;public class MyAdapter extends BaseAdapter List list;Context context;ImageLoader il = ImageLoader.getInstance();public MyAdapter(List list, Context context) super();this.list = list;this.context = context;Overridepublic int getCount() / TODO Auto-generated method stubreturn list.size();Overridepublic Object getItem(int arg0) / TODO Auto-generated method stubreturn list.get(arg0);Overridepublic long getItemId(int position) / TODO Auto-generated method stubreturn position;Overridepublic View getView(final int position, View convertView, ViewGroup parent) / TODO Auto-generated method stubViewHolder vh;View view=convertView;if(view=null)vh=new ViewHolder();view=View.inflate(context, R.layout.item_listview, null);vh.tv_name=(TextView) view.findViewById(R.id.tv_name);vh.iv=(ImageView) view.findViewById(R.id.iv);view.setTag(vh);elsevh=(ViewHolder) view.getTag();/bitmapUtils.display(vh.iv, list.get(position).getMc_imageurl();il.displayImage(list.get(position).getMc_imageurl(), vh.iv);vh.tv_name.setText(list.get(position).getU_name();return view;class ViewHolderTextView tv_name;ImageView iv;MainActivity.javapackage com.example.jiazai;import java.util.ArrayList;import java.util.List;import com.example.vo.MusicList;import com.example.vo.PersonVo;import com.google.gson.Gson;import com.lidroid.xutils.HttpUtils;import com.lidroid.xutils.exception.HttpException;import com.lidroid.xutils.http.ResponseInfo;import com.lidroid.xutils.http.callback.RequestCallBack;import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;import adapter.MyAdapter;import android.os.Bundle;import android.os.Handler;import android.app.Activity;import android.content.Intent;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.widget.AbsListView;import android.widget.AbsListView.OnScrollListener;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.Button;import android.widget.ListView;import android.widget.Toast;public class MainActivity extends Activity private ListView lv;private HttpUtils httpUtils;private int pager=1;private List list=new ArrayList();private MyAdapter adapter;private Button btn_foot;private boolean flag=true;Handler handler=new Handler();Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();public void init()httpUtils=new HttpUtils();lv=(ListView) findViewById(R.id.lv);View footview=LayoutInflater.from(this).inflate(R.layout.footview, null);lv.addFooterView(footview);btn_foot=(Button) footview.findViewById(R.id.btn_foot);btn_foot.setOnClickListener(new OnClickListener() Overridepublic void onClick(View v) / TODO Auto-generated method stubbtn_foot.setText(正在加载.);handler.postDelayed(new Runnable() Overridepublic void run() / TODO Auto-generated method stubgetHttp();adapter.notifyDataSetChanged();btn_foot.setText(加载更多.);, 2000););/数据getHttp();adapter = new MyAdapter(list, this);lv.setAdapter(adapter);lv.setOnScrollListener(new OnScrollListener() Overridepublic void onScrollStateChanged(AbsListView view, int scrollState) / TODO Auto-generated method stubswitch (scrollState) case SCROLL_STATE_IDLE:/if(lv.getLastVisiblePosition()=(list.size()-1)/getHttp();/break;default:break;Overridepublic void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) );lv.setOnItemClickListener(new OnItemClickListener() Overridepublic void onItemClick(AdapterView arg0, View arg1, int arg2,long arg3) / TODO Auto-generated method stubIntent in=new Intent(MainActivity.this, DetilActivity.class);in.putExtra(123, list.get(arg2).getMc_imageurl();startActivity(in););public void getHttp()String url=6:8080/Music03/SelectMusic?u_id=&page=10&page_size=+pager;httpUtils.send(HttpMethod.GET, url, new RequestCallBack() Overridepublic void onFailure(HttpException arg0, String arg1) / TODO Auto-generated method stubLog.i(TAG, +请求失败);Overridepublic void onSuccess(ResponseInfo arg0) / TODO Auto-generated method stubLog.i(TAG, 服务器返回的数据=+arg0.result);Gson g=new Gson();PersonVo pv=g.fromJson(arg0.result, PersonVo.class);pager+;if(pv.getMusiclist().size()=10)list.addAll(pv.getMusiclist();adapter.notifyDataSetChanged();elseif(flag)list.addAll(pv.getMusiclist();adapter.notifyDataSetChanged();flag=false;elseToast.makeText(MainActivity.this, 没有更多数据了!, Toast.LENGTH_LONG).show(););ImageLoader的配置MyApplication.javapackage com.example.jiazai;import java.io.File;import android.app.Application;import android.graphics.Bitmap;import android.os.Environment;import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;import com.nostra13.universalimageloader.cache.memory.impl.UsingFreqLimitedMemoryCache;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;import com.nostra13.universalimageloader.core.assist.ImageScaleType;import com.nostra13.universalimageloader.core.assist.QueueProcessingType;import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;import com.nostra13.universalimageloader.core.download.BaseImageDownloader;public class MyApplication extends Application Overridepublic void onCreate() / TODO Auto-generated method stubsuper.onCreate();ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this).memoryCacheExtraOptions(480, 800)/ max width, max height,即保存的每个缓存文件的最大长宽.discCacheExtraOptions(480, 800, null)/ Can slow ImageLoader, use it carefully (Better dont use/ it)/设置缓存的详细信息,最好不要设置这个.threadPoolSize(3)/ 线程池内加载的数量.threadPriority(Thread.NORM_PRIORITY - 2).denyCacheImageMultipleSizesInMemory().memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)/ You can pass your own memory cache/ implementation/你可以通过自己的内存缓存实现.memoryCacheSize(2 * 1024 * 1024).discCacheSize(50 * 1024 * 1024).discCacheFileNameGenerator(new Md5FileNameGenerator()/ 将保存的时候的URI名称用MD5 加密.tasksProcessingOrder(QueueProcessingType.LIFO).discCacheFileCount(100)/ 缓存的文件数量.discCache(new UnlimitedDiscCache(new File(Environment.getExternalStorageDirectory()+ /myApp/imgCache)/ 自定义缓存路径.defaultDisplayImageOptions(getDisplayOptions().imageDownloader(new BaseImageDownloader(this, 5 * 1000, 30 * 1000).writeDebugLogs() / Remove for release app.build();/ 开始构建ImageLoader.getInstance().init(config);private DisplayImageOptions getDisplayOptions() DisplayImageOptions options;options = new DisplayImageOptions.Builder().showImageOnLoading(R.drawable.ic_launcher) / 设置图片在下载期间显示的图片.showImageForEmptyUri(R.drawable.ic_launcher)/ 设置图片Uri为空或是错误的时候显示的图片.showImageOnFail(R.drawable.ic_launcher) / 设置图片加载/解码过程中错误时候显示的图片.cacheInMemory(true)/ 设置下载的图片是否缓存在内存中.cacheOnDisc(true)/ 设置下载的图片是否缓存在SD卡中.considerExifParams(true) / 是否考虑JPEG图像EXIF参数(旋转,翻转).imageScaleType(ImageScaleType.EXACTLY_STRETCHED)/ 设置图片以如何的编码方式显示.bitmapConfig(Bitmap.Config.RGB_565)/ 设置图片的解码类型/ .delayBeforeLoading(int delayInMillis)/int/ delayInMillis为你设置的下载前的延迟时间/ 设置图片加入缓存前,对bitmap进行设置/ .preProcessor(BitmapProcessor preProcessor).resetViewBeforeLoading(true)/ 设置图片在下载前是否重置,复位.displayer(new RoundedBitmapDisplayer(20)/ 是否设置为圆角,弧度为多少.displayer(new FadeInBitmapDisplayer(100)/ 是否图片加载好后渐入的动画时间.build();/ 构建完成return options;自定义imageviewMyImageView.javapackage com.example.jiazai;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.PorterDuff.Mode;import android.graphics.PorterDuffXfermode;import android.graphics.Rect;import android.graphics.drawable.BitmapDrawable;import android.graphics.drawable.Drawable;import android.util.AttributeSet;import android.widget.ImageView;public class MyImageView extends ImageView public MyImageView(Context context, AttributeSet attrs) super(context, attrs);/ TODO Auto-generated constructor stub/* * 自定义绘制图形 */protected void onDraw(Canvas canvas) / 得到引入的图片Drawable drawable = getDrawable();/ 如果引入的图片为空,代码执行结束if (drawable = null) return;/ 如果引入的图片宽高为0,代码执行结束if (getWidth() = 0 | getHeight() = 0) return;/ 将引入的图片转为bitmapBitmap b = (BitmapDrawable) drawable).getBitmap();/ 如果bitmap为空,代码执行结束if (null = b) return;/ 复制得到一个bitmapBitmap bitmap = b.copy(Bitmap.Config.ARGB_8888, true);/ 得到imageview本身的宽高int w = getWidth(), h = getHeight();/ 自定义方法得到圆形的bitmapBitmap roundBitmap = getCroppedBitmap(bitmap, w);/ 画出得到的bitmapcanvas.drawBitmap(roundBitmap, 0, 0, null);public static Bitmap getCropp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论