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); }}
阅读全文
0 0
- Test2
- test2
- test2
- Test2
- test2
- Test2
- test2
- test2
- test2
- test2
- TEST2
- TEST2
- test2
- test2
- test2
- test2
- test2
- test2
- 网络获取状态
- jni基础
- Markdown基本语法
- ImageLoader加载图片工具类
- 编译原理(2):文法和语言
- test2
- 梦幻古龙2.058商业端一键安装
- Hbase数据存储图解与数据检索流程
- 模糊查询和排序
- 【2017 ACM/ICPC Asia Regional Qingdao Online 1009】hdu 6214 Smallest Minimum Cut
- go语言包管理
- POJ
- XLView内镶嵌viewpager无限轮播 AND 多条目
- 频道管理+popuwindow