获取json解析 图片,文字+MyAsyncTask+ImagerLoader
来源:互联网 发布:网络管理培训班 编辑:程序博客网 时间:2024/04/30 13:09
//联网权限<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) { 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; } } }
阅读全文
0 0
- 获取json解析 图片,文字+MyAsyncTask+ImagerLoader
- POST解析(Imagerloader、异步、图片、文字、listv显示)
- 获取网络json解析中的图片
- 获取网络json解析中的图片
- 御泥坊 部分 网络解析 HttpURLConnection MyAsyncTask
- Imagerloader
- [Android] Json格式解析和文字图片传输
- Json解析网络获取Viewpager图片glide下载图片
- NetWorkUtil,解析Json,获取图片(封装类)
- 图片框架 三重更新 联网获取json 解析
- 解析json图片
- 获取网络json+图片
- 获取解析JSON数据
- json解析 获取key
- 网络获取json解析
- Json获取与解析
- ORC工具解析图片文字
- 简单获取图片和文字
- 《世界上最伟大的推销员》 里的十张羊皮卷
- Android Studio代码混淆
- 给计算机专业大一新生的学习建议
- DPDK-服务质量(QOS)框架
- VScode快捷键
- 获取json解析 图片,文字+MyAsyncTask+ImagerLoader
- 《UNIX环境高级编程》笔记7--文件长度和文件截短
- 注册表项研究 资料查找搜集ControlSet001、ControlSet002以及CurrentControlSet的区别
- 工作流学习笔记——Activiti流程实例、任务管理四步曲
- 自定义View,实现侧边索引
- Qt 信号-槽的同步与异步处理
- 关于安装eclipse之后打开问题
- js:限制输入值类型
- 各种编码格式(非常经典)