获取json解析 图片,文字+MyAsyncTask+ImagerLoader
2017-09-06 09:10
441 查看
//联网权限 <uses-permission android:name="android.permission.INTERNET"></uses-permission> //jsonBean 我已删除get.set方法,减少代码量 public class JsonBean { /** * code : 200 * msg : success * newslist :
*/ private int code; private String msg; private List<NewslistBean> newslist; public static class NewslistBean { /** * ctime : 2017-09-04 * description : 娱乐圈那点事 * picUrl : https://zxpic.gtimg.com/infonew/0/wechat_pics_-28232099.static/640 * title : 林志玲休息室被拍画面“辣眼睛”,这才是她嫁不出去的原因吧! * url : */ private String ctime; private String description; private String picUrl; private String title; private String url; } }
//activity.xml
<Button android:id="@+id/but1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="HttpClient请求"/> <ListView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/lv1"> </ListView>
//item listview中每一份
<ImageView android:id="@+id/iv3" android:layout_width="100dp" android:layout_height="100dp"/> <LinearLayout android:layout_width="match_parent" android:layout_height="100dp" android:orientation="vertical"> <TextView android:layout_marginTop="20dp" android:id="@+id/tv1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="748654651548948641515"/> <TextView android:layout_marginTop="20dp" android:id="@+id/tv2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="748654651548641515"/> </LinearLayout>
//MyAppliction.java 解图片
在 AndroidManifest.xml 中的 <application 后加 android:name=".MyAppliction"
public class MyAppliction extends Application{ @Override public void onCreate() { super.onCreate(); ImageLoaderConfiguration buildsw = new ImageLoaderConfiguration.Builder(MyAppliction.this).build(); ImageLoader.getInstance().init(buildsw); } }
MainActivity.java
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.Button; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.google.gson.Gson; import com.nostra13.universalimageloader.core.ImageLoader; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.List; public class MainActivity extends AppCompatActivity { String path="https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10"; private Button but1; private Button but2; private ListView lv1; //private Bitmap bitmap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); but1 = (Button) findViewById(R.id.but1); lv1 = (ListView) findViewById(R.id.lv1); but1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new MyAsyncTask().execute(path); } }); } class MyAsyncTask extends AsyncTask<String,Void,String> { @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected void onPostExecute(String s) 4000 { super.onPostExecute(s); // 导包gson Gson gson = new Gson(); JsonBean jsonBean = gson.fromJson(s, JsonBean.class); final List<JsonBean.NewslistBean> newslist = jsonBean.getNewslist(); lv1.setAdapter(new BaseAdapter() { @Override public int getCount() { return newslist.size(); } @Override public Object getItem(int position) { return newslist.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHand viewHand; if (convertView==null){ viewHand = new ViewHand(); convertView=View.inflate(MainActivity.this,R.layout.item1,null); viewHand.tv1= (TextView) convertView.findViewById(R.id.tv1); viewHand.tv2= (TextView) convertView.findViewById(R.id.tv2); viewHand.iv = (ImageView) convertView.findViewById(R.id.iv3); convertView.setTag(viewHand); }else { viewHand= (ViewHand) convertView.getTag(); } viewHand.tv1.setText(newslist.get(position).getTitle()); viewHand.tv2.setText(newslist.get(position).getCtime()); //导包ImageLoader ImageLoader.getInstance().displayImage(newslist.get(position).getPicUrl(),viewHand.iv); return convertView; } class ViewHand{ TextView tv1; TextView tv2; ImageView iv; } }); } @Override protected void onProgressUpdate(Void... values) { super.onProgressUpdate(values); } @Override protected String doInBackground(String... params) { ByteArrayOutputStream outputStream; try { URL url = new URL(params[0]); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("GET"); urlConnection.setConnectTimeout(5000); int responseCode = urlConnection.getResponseCode(); outputStream = new ByteArrayOutputStream(); if (responseCode==200){ InputStream inputStream = urlConnection.getInputStream(); byte[] bytes = new byte[1024]; int i; while ((i=inputStream.read(bytes))!=-1){ outputStream.write(bytes,0,i); } return outputStream.toString(); } } catch (Exception e) { e.printStackTrace(); } return null; } } }
相关文章推荐
- 使用ListView和AsyncTask、fastjson解析Json以及适配器BaseAdapter来实现下载网络的图片以及文字并显示出来
- 安卓POST请求+异步获取数据+JSON解析+图片解析
- Android异步任务AsyncTask使用解析 获取网络图片
- NetWorkUtil,解析Json,获取图片(封装类)
- Json解析Handler+异步文字+异步图片
- 获取网络json解析中的图片
- 使用ImageLoader获取图片,使用异步在网上请求json,然后解析,在listview中显示出来
- AsyncTask加载网络Json及其解析Json---------Thread和AsyncTask加载图片2种方式
- AsyncTask 网络获取图片和Json数据加载到ListView上
- Alamofire,SwiftJSON,MJExtension,解析Json获取对象,带参数上传图片
- Json解析网络获取Viewpager图片glide下载图片
- 图片框架 三重更新 联网获取json 解析
- 【Android学习笔记系列】AsyncTask、BaseAdapter整合异步加载用例(通过解析JSON格式数据加载网络图片内容)
- 获取网络json解析中的图片
- json解析+GridView自适应布局+图片加载
- XListView+ImageLoader+AsyncTask+网络获取数据综合
- Android Studio利用异步任务AsyncTask发送post请求获取json数据
- Android JSON的解析与网页内容的获取
- jquery通过ajax方式获取json数据和解析
- struts2 + ajax(从后台获取json格式的数据返回到前端,然后前端用jquery对json数据进行解析)