//activity_main
<?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.bwie.skn.songkenan20170928.MainActivity"> <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="match_parent"></ListView> </android.support.constraint.ConstraintLayout>
//lv_item_layout.xml
<?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"> <TextView android:id="@+id/title" android:layout_width="340dp" android:layout_height="100dp" android:text="正在加载..." /> <ImageView android:id="@+id/image" android:layout_width="100dp" android:layout_height="100dp" android:src="@mipmap/ic_launcher" /> </LinearLayout>
//mainActivity
package com.bwie.skn.songkenan20170928; import android.graphics.Bitmap; import android.graphics.BitmapFactory; 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.ListView; import android.widget.TextView; import com.google.gson.Gson; 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; import java.util.List; public class MainActivity extends AppCompatActivity { private ListView lv; private List<JsonBean.DataBean.PcFeedFocusBean> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (ListView) findViewById(R.id.lv); new MAsyncTask().execute("http://www.toutiao.com/api/pc/focus/"); } class MAsyncTask extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... strings) { try { URL url = new URL(strings[0]); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); int responseCode = urlConnection.getResponseCode(); if (responseCode == 200) { InputStream inputStream = urlConnection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); StringBuffer buffer = new StringBuffer(); String str = ""; while ((str = reader.readLine()) != null) { buffer.append(str); } return buffer.toString(); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); JsonBean jsonBean = gson.fromJson(s, JsonBean.class); list = jsonBean.getData().getPc_feed_focus(); MAdapter mAdapter = new MAdapter(); lv.setAdapter(mAdapter); } } class MAsyncTaskImage extends AsyncTask<String, Void, Bitmap> { private ImageView imageView; public MAsyncTaskImage(ImageView imageView) { this.imageView = imageView; } @Override protected Bitmap doInBackground(String... strings) { try { URL url = new URL(strings[0]); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); int responseCode = urlConnection.getResponseCode(); if (responseCode == 200) { InputStream inputStream = urlConnection.getInputStream(); Bitmap bitmap = BitmapFactory.decodeStream(inputStream); return bitmap; } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Bitmap bitmap) { super.onPostExecute(bitmap); imageView.setImageBitmap(bitmap); } } class MAdapter 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 ViewHowder { ImageView image; TextView title; } @Override public View getView(int i, View view, ViewGroup viewGroup) { ViewHowder vh; if (view == null) { view = View.inflate(MainActivity.this, R.layout.lv_item_layout, null); vh = new ViewHowder(); vh.image = view.findViewById(R.id.image); vh.title = view.findViewById(R.id.title); view.setTag(vh); } else { vh = (ViewHowder) view.getTag(); } vh.title.setText(list.get(i).getTitle()); new MAsyncTaskImage(vh.image).execute("http:" + list.get(i).getImage_url()); return view; } } }
//JsonBean
package com.bwie.skn.songkenan20170928; import java.util.List; /** * author:Created by WangZhiQiang on 2017/9/28. */ public class JsonBean { /** * data : {"pc_feed_focus":[{"display_url":"/group/6470495327120261390/","group_id":6470495327120261390,"has_image":true,"has_video":false,"image_url":"//p1.pstatp.com/origin/3a1f000a7cb88eb3e2a9","media_url":"http://toutiao.com/m5784742177","title":"泰国前总理英拉获刑5年 盘点政途坎坷女政要"},{"display_url":"/group/6470616011799265550/","group_id":6470616011799265550,"has_image":true,"has_video":false,"image_url":"//p1.pstatp.com/origin/3e7d0006990b416b98f1","media_url":"http://toutiao.com/m5739097906","title":"连教官都是高颜值!南艺新生军训 军装难挡青春靓丽颇具明星范儿"},{"display_url":"/group/6469903954775539982/","group_id":6469903954775539982,"has_image":true,"has_video":false,"image_url":"//p3.pstatp.com/origin/3e790007a8cf0b858e54","media_url":"http://toutiao.com/m5738017030","title":"哈里王子为啥独爱她 比自己大三岁且离过婚"},{"display_url":"/group/6470101107120013838/","group_id":6470101107120013838,"has_image":true,"has_video":false,"image_url":"//p3.pstatp.com/origin/3e7a0004a716e8305447","media_url":"http://toutiao.com/m6967144588","title":"张常宁江川荣膺2016-2017赛季中国排球联赛最有价值球员"},{"display_url":"/group/6469318728927412750/","group_id":6469318728927412750,"has_image":true,"has_video":false,"image_url":"//p3.pstatp.com/origin/3e7a00069b7f8cac8047","media_url":"http://toutiao.com/m6579376245","title":"官媒首次曝光!歼11夜间打火箭弹"},{"display_url":"/group/6469982967489528078/","group_id":6469982967489528078,"has_image":true,"has_video":false,"image_url":"//p1.pstatp.com/origin/3e7a0004a4c986ea84cf","media_url":"http://toutiao.com/m5738017030","title":"娜塔莉·波特曼现在完全主妇样儿 但她活得自在"},{"display_url":"/group/6469877437638754573/","group_id":6469877437638754573,"has_image":true,"has_video":false,"image_url":"//p3.pstatp.com/origin/3e780005925e8a495fce","media_url":"http://toutiao.com/m5738017030","title":"香港女星都怎么保养的 你能从50岁的周慧敏脸上看到皱纹吗"},{"display_url":"/group/6469978900545552654/","group_id":6469978900545552654,"has_image":true,"has_video":false,"image_url":"//p1.pstatp.com/origin/3e79000796dae5a7cd63","media_url":"http://toutiao.com/m5739097906","title":"2017国庆热门景点人潮预警 人少又好玩的去处?呵呵不存在的"},{"display_url":"/group/6470242643074892045/","group_id":6470242643074892045,"has_image":true,"has_video":false,"image_url":"//p3.pstatp.com/origin/3e780007a856b19a83c0","media_url":"http://toutiao.com/m3432307046","title":"野鸡变凤凰!古董战车改装卖80万美元"},{"display_url":"/group/6469735394224112141/","group_id":6469735394224112141,"has_image":true,"has_video":false,"image_url":"//p1.pstatp.com/origin/3e7b00058f66123a954b","media_url":"http://toutiao.com/m50266454509","title":"周冬雨娜扎柳岩红毯\u201c比美\u201d 吴京拄拐杖获岳云鹏护送"}]} * message : success */ private DataBean data; private String message; public DataBean getData() { return data; } public void setData(DataBean data) { this.data = data; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public static class DataBean { private List<PcFeedFocusBean> pc_feed_focus; public List<PcFeedFocusBean> getPc_feed_focus() { return pc_feed_focus; } public void setPc_feed_focus(List<PcFeedFocusBean> pc_feed_focus) { this.pc_feed_focus = pc_feed_focus; } public static class PcFeedFocusBean { /** * display_url : /group/6470495327120261390/ * group_id : 6470495327120261390 * has_image : true * has_video : false * image_url : //p1.pstatp.com/origin/3a1f000a7cb88eb3e2a9 * media_url : http://toutiao.com/m5784742177 * title : 泰国前总理英拉获刑5年 盘点政途坎坷女政要 */ private String display_url; private long group_id; private boolean has_image; private boolean has_video; private String image_url; private String media_url; private String title; public String getDisplay_url() { return display_url; } public void setDisplay_url(String display_url) { this.display_url = display_url; } public long getGroup_id() { return group_id; } public void setGroup_id(long group_id) { this.group_id = group_id; } public boolean isHas_image() { return has_image; } public void setHas_image(boolean has_image) { this.has_image = has_image; } public boolean isHas_video() { return has_video; } public void setHas_video(boolean has_video) { this.has_video = has_video; } public String getImage_url() { return image_url; } public void setImage_url(String image_url) { this.image_url = image_url; } public String getMedia_url() { return media_url; } public void setMedia_url(String media_url) { this.media_url = media_url; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } } } }