XListview + imageLoader !!
来源:互联网 发布:希望我们都好好的 知乎 编辑:程序博客网 时间:2024/05/21 13:53
package com.lbs.rikao_10;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.TextView;import com.bwie.xlistviewlibrary.View.XListView;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener { private String NetString="https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10"; private List<TextBean.NewslistBean> list=new ArrayList<TextBean.NewslistBean>(); private MyAdapter adapter; private ImageLoader instance; private XListView xListView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //com.bwie.xlistviewlibrary.View.XListView 地址 //返回xListView类 xListView = (XListView) findViewById(R.id.xlistview); //图片的她。 instance = ImageLoader.getInstance(); //调用AsyncTask解析类的方法 getNetData(); //实例适配器 adapter = new MyAdapter(); //添加适配器 xListView.setAdapter(adapter); //让XListView有上拉加载的功能; xListView.setPullLoadEnable(true); // 接口回调要把接口实现类设置进去, MainActivity就是(XListViewListener)它的实现了 xListView.setXListViewListener(this); } private void getNetData() { //实例MyAsyncTask类 new MyAsyncTask().execute(NetString); } //AsyncTask解析类 private class MyAsyncTask extends AsyncTask<String,Void,String> { @Override protected String doInBackground(String... strings) { return Utils.getNetString(strings[0]); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson=new Gson(); TextBean json = gson.fromJson(s, TextBean.class); //得到集合; List<TextBean.NewslistBean> newslist = json.getNewslist(); //把从网络解析的数据放到adapter使用的集合里; list.addAll(newslist); adapter.notifyDataSetChanged(); uiComplete();// 让刷新头 或者刷新底部ui返回; } } private class MyAdapter extends BaseAdapter { private ViewHolder vh; private TextView ctime; private TextView title; private TextView description; private ImageView img; @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { if (view==null){ vh = new ViewHolder(); view = View.inflate(MainActivity.this, R.layout.item, null); view.setTag(vh); }else{ vh = (ViewHolder) view.getTag(); } vh.ctime = view.findViewById(R.id.item_ctime); vh.title = view.findViewById(R.id.item_title); vh.description = view.findViewById(R.id.item_description); vh.img = view.findViewById(R.id.item_img); vh.ctime.setText(list.get(i).getCtime()); vh.title.setText(list.get(i).getTitle()); vh.description.setText(list.get(i).getDescription()); instance.displayImage(list.get(i).getPicUrl(),vh.img, Utils.getDisplayImageOption()); return view; } } //ViewHolder类 class ViewHolder{ TextView ctime; TextView title; TextView description; ImageView img; } /** * 下拉刷新 */ @Override public void onRefresh() { list.clear(); getNetData(); } /** * 上拉加载 */ @Override public void onLoadMore() { getNetData(); } /** * 让刷新头 或者刷新底部ui返回; */ private void uiComplete(){ //停止刷新 xListView.stopRefresh(); //停止上拉加载更多 xListView.stopLoadMore(); //上次上拉时间 xListView.setRefreshTime("刚刚"); }}package com.lbs.rikao_10;import android.graphics.Bitmap;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.assist.ImageScaleType;import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;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;/** * author:Created by WangZhiQiang on 2017/11/10. */public class Utils { public static DisplayImageOptions getDisplayImageOption() { DisplayImageOptions options = new DisplayImageOptions.Builder() .showImageOnLoading(R.mipmap.ic_launcher) //设置图片在下载期间显示的图片 .showImageForEmptyUri(R.mipmap.ic_launcher)//设置图片Uri为空或是错误的时候显示的图片 .showImageOnFail(R.mipmap.ic_launcher) //设置图片加载/解码过程中错误时候显示的图片 .cacheInMemory(true)//设置下载的图片是否缓存在内存中 .cacheOnDisk(true) .considerExifParams(true) //是否考虑JPEG图像EXIF参数(旋转,翻转) .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)//设置图片以如何的编码方式显示 .bitmapConfig(Bitmap.Config.RGB_565)//设置图片的解码类型// .displayer(new RoundedBitmapDisplayer(30))//是否设置为圆角,弧度为多少// .displayer(new FadeInBitmapDisplayer(100))//是否图片加载好后渐入的动画时间 .build();//构建完成 return options; } /** * 解析的工具类。 * @param str * @return */ public static String getNetString(String str){ try { URL url=new URL(str); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); int responseCode = urlConnection.getResponseCode(); if (responseCode==200){ InputStream is = urlConnection.getInputStream(); BufferedReader br=new BufferedReader(new InputStreamReader(is)); StringBuilder sb=new StringBuilder(); String line=null; while ((line=br.readLine())!=null){ sb.append(line); } return sb.toString(); } } catch (MalformedURLException e) { e.printStackTrace(); }catch (IOException e) { e.printStackTrace(); } return null; }}package com.lbs.rikao_10;import android.app.Application;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;/** * author:Created by WangZhiQiang on 2017/11/10. */public class MApp extends Application { @Override public void onCreate() { super.onCreate(); ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this).build(); ImageLoader.getInstance().init(configuration); }}<?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.lbs.rikao_10.MainActivity"> <com.bwie.xlistviewlibrary.View.XListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/xlistview" ></com.bwie.xlistviewlibrary.View.XListView></android.support.constraint.ConstraintLayout><?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" android:orientation="horizontal"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/item_description" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="40px" android:text="1" /> <TextView android:id="@+id/item_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="15px" android:text="2" /> <TextView android:id="@+id/item_ctime" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="15px" android:text="3" /> </LinearLayout> <ImageView android:id="@+id/item_img" android:layout_width="200px" android:layout_height="200px" android:src="@mipmap/ic_launcher" /></LinearLayout>
阅读全文
0 0
- XListview + imageLoader !!
- Xlistview和ImageLoader
- XListView+ImageLoader+AsyncTask+网络获取数据综合
- fragment+Xlistview+viewpager无限轮播+imageloader
- 轮播图加载Imageloader图片,Xlistview上拉下拉
- ImageLoader,GET,POST获取数据,多条目加载,XListView
- xlistview和ImageLoader综合练习 图片框架及形态
- XListView
- XListView
- Xlistview
- XListView
- xListView
- XListView
- xlistview
- xListView
- XlistView
- xlistview
- xlistview
- 选择排序
- 百度地图开发-----添加多个行政区域
- 这个行业一半人月薪超过8千!
- 开通CSDN
- 微信公众平台开发踩过的坑
- XListview + imageLoader !!
- VASSISTX使用指南
- YTKNetwork集成教程以及相关问题思考
- 一篇文章梳理完虚拟现实相关的核心技术 | 收藏
- maven依赖设置版本号的坑:java.lang.NoSuchMethodError: No static method stringToValue(Ljava/lang/String;)Ljava/
- list.isEmpty()和list.size()>0时间复杂度
- JavaWeb高效开发工具IntelliJ IDEA
- spring框架下载
- C#从入门到入土——17_11_10