new Myasynctask().execute(path);
class Myasynctask extends AsyncTask<String, Void, String> {
private Myadapter myadapter;
//请求数据
@Override
protected String doInBackground(String... strings) {
try {
//获取url
URL url = new URL(strings[0]);
//请求网络
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
//设置post请求
//urlConnection.setRequestMethod("POST");
int code = urlConnection.getResponseCode();
//判断是否返回成功
if (code == 200) {
//获取网络信息
InputStream inputStream = urlConnection.getInputStream();
BufferedReader bf = new BufferedReader(new InputStreamReader(inputStream));
builder = new StringBuilder();
String s = "";
while ((s = bf.readLine()) != null) {
builder.append(s);
}
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return builder.toString();
}
//运行在主线程
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
Bean bean = gson.fromJson(s, Bean.class);
Bean.DataBean data = bean.getData();
list = data.getComics();
myadapter = new Myadapter();
mlistview.setAdapter(myadapter);
}
//适配器
class Myadapter extends BaseAdapter {
@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;
}
class ViewHolder {
TextView tv;
ImageView img, img2;
}
@Override
public int getItemViewType(int position) {
if (position % 2 == 0) {
return 0;
} else {
return 1;
}
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
int type = getItemViewType(i);
ViewHolder vh;
if (type == 0) {
if (view == null) {
vh = new ViewHolder();
view = View.inflate(getActivity(), R.layout.list1, null);
vh.tv = (TextView) view.findViewById(R.id.textView);
vh.img = (ImageView) view.findViewById(R.id.imageView);
vh.img2 = (ImageView) view.findViewById(R.id.imageView2);
view.setTag(vh);
} else {
vh = (ViewHolder) view.getTag();
}
vh.tv.setText(list.get(i).getTitle());
ImageLoader.getInstance().displayImage(list.get(i).getCover_image_url(), vh.img);
ImageLoader.getInstance().displayImage(list.get(i).getTopic().getCover_image_url(), vh.img2);
} else {
if (view == null) {
vh = new ViewHolder();
view = View.inflate(getActivity(), R.layout.list2, null);
vh.tv = (TextView) view.findViewById(R.id.textView);
vh.img = view.findViewById(R.id.imageView);
view.setTag(vh);
} else {
vh = (ViewHolder) view.getTag();
}
vh.tv.setText(list.get(i).getTitle());
ImageLoader.getInstance().displayImage(list.get(i).getCover_image_url(), vh.img);
}
return view;
}
//ImageLoader
public class MApp extends Application {
@Override
public void onCreate() {
super.onCreate();
ImageLoaderConfiguration config = new ImageLoaderConfiguration
.Builder(this)
// max width, max height,即保存的每个缓存文件的最大长宽
.memoryCacheExtraOptions(480, 800)
//线程池内加载的数量
.threadPoolSize(5)
.threadPriority(Thread.NORM_PRIORITY - 2)
.denyCacheImageMultipleSizesInMemory()
// You can pass your own memory cache implementation/你可以通过自己的内存缓存实现
.memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024))
.memoryCacheSize(2 * 1024 * 1024)
.tasksProcessingOrder(QueueProcessingType.LIFO)
.defaultDisplayImageOptions(DisplayImageOptions.createSimple())
// connectTimeout (5 s), readTimeout (30 s)超时时间
.imageDownloader(new BaseImageDownloader(this, 5 * 1000, 30 * 1000))
// Remove for release app
.writeDebugLogs()
//开始构建
.build();
//初始化imageloader;
ImageLoader.getInstance().init(config);
}
}