XListview + imageLoader !!

来源:互联网 发布:希望我们都好好的 知乎 编辑:程序博客网 时间:2024/05/21 13:53
package com.lbs.rikao_10;import android.os.AsyncTask;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.bwie.xlistviewlibrary.View.XListView;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {    private String NetString="https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10";    private List<TextBean.NewslistBean> list=new ArrayList<TextBean.NewslistBean>();    private MyAdapter adapter;    private ImageLoader instance;    private XListView xListView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //com.bwie.xlistviewlibrary.View.XListView   地址        //返回xListView类        xListView = (XListView) findViewById(R.id.xlistview);        //图片的她。        instance = ImageLoader.getInstance();        //调用AsyncTask解析类的方法        getNetData();        //实例适配器        adapter = new MyAdapter();        //添加适配器        xListView.setAdapter(adapter);        //让XListView有上拉加载的功能;        xListView.setPullLoadEnable(true);        // 接口回调要把接口实现类设置进去, MainActivity就是(XListViewListener)它的实现了        xListView.setXListViewListener(this);    }    private void getNetData() {        //实例MyAsyncTask类        new MyAsyncTask().execute(NetString);    }    //AsyncTask解析类    private class MyAsyncTask extends AsyncTask<String,Void,String> {        @Override        protected String doInBackground(String... strings) {            return Utils.getNetString(strings[0]);        }        @Override        protected void onPostExecute(String s) {            super.onPostExecute(s);            Gson gson=new Gson();            TextBean json = gson.fromJson(s, TextBean.class);            //得到集合;            List<TextBean.NewslistBean> newslist = json.getNewslist();            //把从网络解析的数据放到adapter使用的集合里;            list.addAll(newslist);            adapter.notifyDataSetChanged();            uiComplete();// 让刷新头 或者刷新底部ui返回;        }    }    private class MyAdapter extends BaseAdapter {        private ViewHolder vh;        private TextView ctime;        private TextView title;        private TextView description;        private ImageView img;        @Override        public int getCount() {            return list.size();        }        @Override        public Object getItem(int i) {            return null;        }        @Override        public long getItemId(int i) {            return 0;        }        @Override        public View getView(int i, View view, ViewGroup viewGroup) {            if (view==null){                vh = new ViewHolder();                view = View.inflate(MainActivity.this, R.layout.item, null);                view.setTag(vh);            }else{                vh = (ViewHolder) view.getTag();            }            vh.ctime = view.findViewById(R.id.item_ctime);            vh.title = view.findViewById(R.id.item_title);            vh.description = view.findViewById(R.id.item_description);            vh.img = view.findViewById(R.id.item_img);            vh.ctime.setText(list.get(i).getCtime());            vh.title.setText(list.get(i).getTitle());            vh.description.setText(list.get(i).getDescription());            instance.displayImage(list.get(i).getPicUrl(),vh.img, Utils.getDisplayImageOption());            return view;        }    }    //ViewHolder类    class ViewHolder{        TextView ctime;        TextView title;        TextView description;        ImageView img;    }    /**     * 下拉刷新     */    @Override    public void onRefresh() {        list.clear();        getNetData();    }    /**     * 上拉加载     */    @Override    public void onLoadMore() {        getNetData();    }    /**     * 让刷新头 或者刷新底部ui返回;     */    private  void uiComplete(){        //停止刷新        xListView.stopRefresh();        //停止上拉加载更多        xListView.stopLoadMore();        //上次上拉时间        xListView.setRefreshTime("刚刚");    }}package com.lbs.rikao_10;import android.graphics.Bitmap;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.assist.ImageScaleType;import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;/** * author:Created by WangZhiQiang on 2017/11/10. */public class Utils {    public static DisplayImageOptions getDisplayImageOption() {        DisplayImageOptions options = new DisplayImageOptions.Builder()                .showImageOnLoading(R.mipmap.ic_launcher) //设置图片在下载期间显示的图片                .showImageForEmptyUri(R.mipmap.ic_launcher)//设置图片Uri为空或是错误的时候显示的图片                .showImageOnFail(R.mipmap.ic_launcher)  //设置图片加载/解码过程中错误时候显示的图片                .cacheInMemory(true)//设置下载的图片是否缓存在内存中                .cacheOnDisk(true)                .considerExifParams(true)  //是否考虑JPEG图像EXIF参数(旋转,翻转)                .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)//设置图片以如何的编码方式显示                .bitmapConfig(Bitmap.Config.RGB_565)//设置图片的解码类型//                .displayer(new RoundedBitmapDisplayer(30))//是否设置为圆角,弧度为多少//                .displayer(new FadeInBitmapDisplayer(100))//是否图片加载好后渐入的动画时间                .build();//构建完成        return options;    }    /**     * 解析的工具类。     * @param str     * @return     */    public static String getNetString(String str){        try {            URL url=new URL(str);            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();            int responseCode = urlConnection.getResponseCode();            if (responseCode==200){                InputStream is = urlConnection.getInputStream();                BufferedReader br=new BufferedReader(new InputStreamReader(is));                StringBuilder sb=new StringBuilder();                String line=null;                while ((line=br.readLine())!=null){                    sb.append(line);                }                return sb.toString();            }        } catch (MalformedURLException e) {            e.printStackTrace();        }catch (IOException e) {            e.printStackTrace();        }        return null;    }}package com.lbs.rikao_10;import android.app.Application;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;/** * author:Created by WangZhiQiang on 2017/11/10. */public class MApp extends Application {    @Override    public void onCreate() {        super.onCreate();        ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this).build();        ImageLoader.getInstance().init(configuration);    }}<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.lbs.rikao_10.MainActivity">    <com.bwie.xlistviewlibrary.View.XListView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/xlistview"        ></com.bwie.xlistviewlibrary.View.XListView></android.support.constraint.ConstraintLayout><?xml version="1.0" encoding="utf-8"?><LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="horizontal">    <LinearLayout        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:orientation="vertical">        <TextView            android:id="@+id/item_description"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginTop="40px"            android:text="1" />        <TextView            android:id="@+id/item_title"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginTop="15px"            android:text="2" />        <TextView            android:id="@+id/item_ctime"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginTop="15px"            android:text="3" />    </LinearLayout>    <ImageView        android:id="@+id/item_img"        android:layout_width="200px"        android:layout_height="200px"        android:src="@mipmap/ic_launcher" /></LinearLayout>
原创粉丝点击