效果图:
<img src="https://img-/125158343?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamF2YXluYWc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />///程序入口 xUtils 框架结合SwipeRefreshLayout 全部代码都在这里了 差不多都有注释的 一看就懂的。。。
package com.example.text;import java.lang.reflect.Field;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import com.lidroid.xutils.BitmapUtils;import com.lidroid.xutils.HttpUtils;import com.lidroid.xutils.ViewUtils;import com.lidroid.xutils.bitmap.BitmapCommonUtils;import com.lidroid.xutils.bitmap.BitmapGlobalConfig;import com.lidroid.xutils.bitmap.PauseOnScrollListener;import com.lidroid.xutils.exception.HttpException;import com.lidroid.xutils.http.HttpCache;import com.lidroid.xutils.http.ResponseInfo;import com.lidroid.xutils.http.callback.RequestCallBack;import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;import com.lidroid.xutils.view.annotation.ViewInject;import com.lidroid.xutils.view.annotation.event.OnClick;import com.lidroid.xutils.view.annotation.event.OnItemClick;import android.os.Bundle;import android.os.Handler;import android.app.Activity;import android.graphics.Bitmap;import android.support.v4.widget.SwipeRefreshLayout;import android.util.DisplayMetrics;import android.view.Menu;import android.view.View;import android.view.ViewTreeObserver;import android.widget.AdapterView;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;/*** * @author 洋洋 * 项目名称:xUtils框架结合SwipeRefreshLayout网络加载下拉刷新* 类 名 称:程序入口* 类 描 述:xUtils框架结合SwipeRefreshLayout网络加载下拉刷新* 创 建 人:刘兴洋 Copyright* 创建时间:-12-20上午9:50:03*(c)刘兴洋-版权所有*/public class MainActivity extends Activity implements SwipeRefreshLayout.OnRefreshListener {@ViewInject(R.id.swipe)private SwipeRefreshLayout swipe;/*** 初始化ListView ui*/@ViewInject(R.id.lv_list)private ListView lv_list;/*创建保存图片类型没变量:BitmapUtils*/public static BitmapUtils bitmapUtils;private ListAdpter listAdpter;HttpUtils conn=new HttpUtils();String url="";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);/*Acitvity中的注释*/ViewUtils.inject(this);/*** 下拉刷新*/swipe.setOnRefreshListener(this);/*** 设置下拉刷新时的颜色* setColorSchemeResources:使用这个来设置颜色* setColorScheme:已经弃用了*/swipe.setColorScheme(android.R.color.holo_green_dark, android.R.color.holo_green_light,android.R.color.holo_orange_light, android.R.color.holo_red_light);/*给图片对象传入向下文,不单是一次使用,可以多次重载使用*/bitmapUtils=BitmapHelp.getBitmapUtils(MainActivity.this.getApplicationContext());/*默认是加载的背景图片*/bitmapUtils.configDefaultLoadingImage(R.drawable.ic_launcher);/*加载失败是的图片*/bitmapUtils.configDefaultLoadFailedImage(R.drawable.ic_launcher);/*加载压缩的图片*/bitmapUtils.configDefaultBitmapConfig(Bitmap.Config.RGB_565);/*设置图片的宽高,不设置时自动适应控件的大小*///bitmapUtils.configDefaultBitmapMaxSize(BitmapCommonUtils.getScreenSize(MainActivity.this).scaleDown(5));/** 滑动加载图片时,快速滑过的时候不用加载* 第一个值:bitmapUtils,当前加载图片的对象* 第二个值:false:触摸滚动的时候暂停加载{@linkplain BitmapUtils#pause() pause loading} during touch scrolling* 第三个值:true:停顿加载,{@linkplain BitmapUtils#pause() pause loading} during fling* */lv_list.setOnScrollListener(new PauseOnScrollListener(bitmapUtils, false, true));conn.configCurrentHttpCacheExpiry(5000);conn.send(HttpMethod.GET, url, new RequestCallBack<String>() {@Overridepublic void onSuccess(ResponseInfo<String> responseInfo) {/*给listView适配器 适配数据*/listAdpter=new ListAdpter(MainActivity.this,bitmapUtils,getImgSrcList(responseInfo.result));lv_list.setAdapter(listAdpter);/*提示lsitview 更新数据*/listAdpter.notifyDataSetChanged();}@Overridepublic void onFailure(HttpException error, String msg) {// TODO 自动生成的方法存根}});}/*** 解析json* @param json 从网络读取的数据* @return*/public List<String> getImgSrcList(String json){List<String> list=new ArrayList<String>();try {JSONArray array=new JSONArray(json);for (int i = 0; i < array.length(); i++) {JSONObject object=array.getJSONObject(i);String img=object.get("img").toString();list.add("/img/"+img);}} catch (JSONException e) {e.printStackTrace();}return list;}/*** ListView 的点击事件* @param parent: 数据类型* @param view: 视图* @param position: 位置* @param id :id*/@OnItemClick(R.id.lv_list)public void onColciItme(AdapterView<?> parent,View view,int position,long id ){Toast.makeText(MainActivity.this, "ssss", 1000).show();}@Overridepublic void onRefresh() {//tv_text.setVisibility(View.VISIBLE);//mHandler.sendEmptyMessageDelayed(REFRESH_COMPLETE, 2500);new Handler().postDelayed(new Runnable() { public void run() {//tv_text.setVisibility(View.INVISIBLE);// true 加动画, flase 取消动画swipe.setRefreshing(false); conn.configCurrentHttpCacheExpiry(5000);conn.send(HttpMethod.GET, url, new RequestCallBack<String>() {@Overridepublic void onSuccess(ResponseInfo<String> responseInfo) {/*给listView适配器 适配数据*/listAdpter=new ListAdpter(MainActivity.this,bitmapUtils,getImgSrcList(responseInfo.result));lv_list.setAdapter(listAdpter);/*提示lsitview 更新数据*/listAdpter.notifyDataSetChanged();}@Overridepublic void onFailure(HttpException error, String msg) {// TODO 自动生成的方法存根}});} }, 3000); }}
//下面是 listview 适配器的数据
<pre name="code" class="java">package com.example.text;import java.util.List;import com.lidroid.xutils.BitmapUtils;import com.lidroid.xutils.ViewUtils;import com.lidroid.xutils.view.annotation.ViewInject;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;/*** * @author 洋洋 * 项目名称:xUtils框架结合SwipeRefreshLayout网络加载下拉刷新* 类 名 称:listview 适配器* 类 描 述:给listview 适配数据* 创 建 人:刘兴洋 Copyright* 创建时间:-12-20上午9:51:36*(c)刘兴洋-版权所有*/public class ListAdpter extends BaseAdapter {/*视图*/private LayoutInflater inflater;/*上下文*/private Context context;/*数据*/private List<String> list;/*图片展示对象*/private BitmapUtils bitmapUtils;public ListAdpter(Context context,BitmapUtils bitmapUtils,List<String> list) {super();this.inflater = LayoutInflater.from(context);this.context = context;this.bitmapUtils=bitmapUtils;this.list=list;}@Overridepublic int getCount() {return list.size();}@Overridepublic Object getItem(int arg0) {return list.get(arg0);}@Overridepublic long getItemId(int arg0) {return arg0;}@Overridepublic View getView(int arg0, View view, ViewGroup arg2) {ImgItme imgItme;if(view==null){imgItme=new ImgItme();view=inflater.inflate(R.layout.itme, null);/*fragment类型的注入*/ViewUtils.inject(imgItme,view);view.setTag(imgItme);}else{imgItme=(ImgItme) view.getTag();}/*** 映射数据 display:加载图片*/bitmapUtils.display(imgItme.iv_img,list.get(arg0));return view;}/*** * @author 洋洋 * 项目名称:xUtils框架结合SwipeRefreshLayout网络加载下拉刷新* 类 名 称:临时变量* 类 描 述:临时变量* 创 建 人:刘兴洋 Copyright* 创建时间:-12-20上午9:52:26*(c)刘兴洋-版权所有*/public final class ImgItme{@ViewInject(R.id.iv_img)private ImageView iv_img;}}
以上的就是全部代码了 xml文件 就一个SwipeRefreshLayou嵌套个listview,,, xml就不上传了,这个要看各位同僚的具体需求而定。。。
如果觉得《xUtils框架t网络加载图片 结合SwipeRefreshLayou下拉刷新》对你有帮助,请点赞、收藏,并留下你的观点哦!