test2

来源:互联网 发布:python mat函数 编辑:程序博客网 时间:2024/06/13 19:53
MainActivity
package com.example.a11_zhoukao_test;import android.os.AsyncTask;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import com.example.a11_zhoukao_test.view.XListView;import com.google.gson.Gson;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {    private XListView xlv;    private int page = 1;    private List<DataDataBean.DataBean> list = new ArrayList<>();    private Myadapter adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        xlv = (XListView) findViewById(R.id.xlv);        xlv.setPullLoadEnable(true);        xlv.setPullRefreshEnable(true);        getDataFromNet();        xlv.setXListViewListener(this);    }    private void getDataFromNet() {        AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() {            @Override            protected String doInBackground(Void... voids) {                String path = "http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=" + page;                try {                    URL url = new URL(path);                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();                    connection.setRequestMethod("GET");                    connection.setConnectTimeout(5000);                    connection.setReadTimeout(5000);                    int responseCode = connection.getResponseCode();                    if (responseCode == 200) {                        InputStream inputStream = connection.getInputStream();                        String json = streamTostring(inputStream, "utf-8");                        return json;                    }                } catch (Exception e) {                    e.printStackTrace();                }                return "";            }            @Override            protected void onPostExecute(String json) {                Gson gson = new Gson();                DataDataBean datadataBean = gson.fromJson(json, DataDataBean.class);                list.addAll(datadataBean.getData());                setAdapter();                xlv.stopLoadMore();            }        };        asyncTask.execute();    }    @Override    public void onRefresh() {        getRefreshData();    }    private void getRefreshData() {        AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() {            @Override            protected String doInBackground(Void... voids) {                String path = "http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=" + page;                try {                    URL url = new URL(path);                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();                    connection.setRequestMethod("GET");                    connection.setConnectTimeout(5000);                    connection.setReadTimeout(5000);                    int responseCode = connection.getResponseCode();                    if (responseCode == 200) {                        InputStream inputStream = connection.getInputStream();                        String json = streamTostring(inputStream, "utf-8");                        return json;                    }                } catch (Exception e) {                    e.printStackTrace();                }                return "";            }            @Override            protected void onPostExecute(String json) {                Gson gson = new Gson();                DataDataBean datadataBean = gson.fromJson(json, DataDataBean.class);                list.addAll(0, datadataBean.getData());                setAdapter();                xlv.stopLoadMore();                xlv.setRefreshTime("刚刚");            }        };        asyncTask.execute();    }    @Override    public void onLoadMore() {        page++;        getDataFromNet();    }    private void setAdapter() {        if (adapter == null) {            adapter = new Myadapter(MainActivity.this, list);            xlv.setAdapter(adapter);        } else {            adapter.notifyDataSetChanged();        }    }    private String streamTostring(InputStream inputStream, String charset) {        try {            InputStreamReader inputStreamReader = new InputStreamReader(inputStream, charset);            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);            String s = null;            StringBuilder builder = new StringBuilder();            while ((s = bufferedReader.readLine()) != null) {                builder.append(s);            }            bufferedReader.close();            return builder.toString();        } catch (Exception e) {            e.printStackTrace();        }        return null;    }-------------------------------------------------------------------------------
Myadapter
-------------------------------------------------------------------------------
package com.example.a11_zhoukao_test;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;import java.util.List;/** * Created by lenovo on 2017/9/14. */public class Myadapter extends BaseAdapter{    Context context;    List<DataDataBean.DataBean> list;    private int IMAGE=0;    private int TITLE=1;    public Myadapter(Context context, List<DataDataBean.DataBean> list) {        this.context=context;        this.list=list;        ImageLoader.getInstance().init(ImageLoaderConfiguration.createDefault(context));    }    @Override    public int getCount() {        return list.size();    }    @Override    public Object getItem(int i) {        return list.get(i);    }    @Override    public long getItemId(int i) {        return i;    }    @Override    public int getViewTypeCount() {        return 2 ;    }    @Override    public int getItemViewType(int i) {        if (i%2==0){            return IMAGE;        }        return TITLE;    }    @Override    public View getView(int i, View view, ViewGroup viewGroup) {        if (getItemViewType(i) == IMAGE){            ImageHolder holder;            if (view == null){                view = View.inflate(context, R.layout.image_layout,null);                holder = new ImageHolder();                holder.tv1 = view.findViewById(R.id.tv1);                holder.iv1 = view.findViewById(R.id.iv1);                view.setTag(holder);            }else {                holder = (ImageHolder) view.getTag();            }            holder.tv1.setText(list.get(i).getTitle());            ImageLoader.getInstance().displayImage(list.get(i).getImg(),holder.iv1, ImageLoaderUtil.getOption());        }else {            TextHolder holder;            if (view == null){                view = View.inflate(context, R.layout.title_layout,null);                holder = new TextHolder();                holder.tv2 = view.findViewById(R.id.tv2);                view.setTag(holder);            }else {                holder = (TextHolder) view.getTag();            }            holder.tv2.setText(list.get(i).getTitle());        }        return view;    }    private class ImageHolder{        ImageView iv1;        android.widget.TextView tv1;    }    private class TextHolder{        TextView tv2;    }}
---------------------------------------------------------------------------------------------------
ImageLoaderUtil
---------------------------------------------------------------------------------------------------
package com.example.a11_zhoukao_test;import android.content.Context;import android.graphics.Bitmap;import android.os.Environment;import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator;import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;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.decode.BaseImageDecoder;import com.nostra13.universalimageloader.core.download.BaseImageDownloader;import java.io.File;/** * Created by lenovo on 2017/9/14. */public class ImageLoaderUtil {    /**     * 配置的方法     * @param context     */    public static void initConfig(Context context) {        File cacheDir = new File(Environment.getExternalStorageDirectory(),"/image");  //缓存文件夹路径        if (!cacheDir.exists()){            cacheDir.mkdirs();        }        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)                .threadPoolSize(3)                .threadPriority(Thread.NORM_PRIORITY - 2) // default 设置当前线程的优先级                .tasksProcessingOrder(QueueProcessingType.FIFO) // default                .denyCacheImageMultipleSizesInMemory()                .memoryCache(new LruMemoryCache(2 * 1024 * 1024)) //可以通过自己的内存缓存实现                .memoryCacheSize(2 * 1024 * 1024)  // 内存缓存的最大值                .memoryCacheSizePercentage(13) // default                .diskCache(new UnlimitedDiskCache(cacheDir)) // default 可以自定义缓存路径                .diskCacheSize(50 * 1024 * 1024) // 50 Mb sd卡(本地)缓存的最大值                .diskCacheFileCount(100)  // 可以缓存的文件数量                // default为使用HASHCODE对UIL进行加密命名, 还可以用MD5(new Md5FileNameGenerator())加密                .diskCacheFileNameGenerator(new HashCodeFileNameGenerator())                .imageDownloader(new BaseImageDownloader(context)) // default                .imageDecoder(new BaseImageDecoder(true)) // default                .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default                .writeDebugLogs() // 打印debug log                .build(); //开始构建        ImageLoader.getInstance().init(config);    }    public static DisplayImageOptions getOption() {        DisplayImageOptions options = new DisplayImageOptions.Builder()                .showImageOnLoading(R.mipmap.ic_launcher) // 设置图片下载期间显示的图片                .showImageForEmptyUri(R.mipmap.ic_launcher) // 设置图片Uri为空或是错误的时候显示的图片                .showImageOnFail(R.mipmap.ic_launcher) // 设置图片加载或解码过程中发生错误显示的图片                .resetViewBeforeLoading(true)  // default 设置图片在加载前是否重置、复位                .delayBeforeLoading(1000)  // 下载前的延迟时间                .cacheInMemory(true) // default  设置下载的图片是否缓存在内存中                .cacheOnDisk(true) // default  设置下载的图片是否缓存在SD卡中                .imageScaleType(ImageScaleType.EXACTLY_STRETCHED) // default 设置图片以如何的编码方式显示                .bitmapConfig(Bitmap.Config.RGB_565) // default 设置图片的解码类型                .build();        return options;    }}
---------------------------------------------------------------------------------------
BaseApplication
---------------------------------------------------------------------------------------
package com.example.a11_zhoukao_test;import android.app.Application;/** * Created by lenovo on 2017/9/14. */public class BaseApplication extends Application {    @Override    public void onCreate() {        super.onCreate();        ImageLoaderUtil.initConfig(this);    }}