import android.os.AsyncTask; import android.os.Handler; import android.os.Message; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.TextView; import android.widget.Toast; import com.example.zhoukao3.bean.MenuInfo; import com.example.zhoukao3.utils.SeatInfo; import com.google.gson.Gson; import com.limxing.xlistview.view.XListView; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import java.util.Timer; import java.util.TimerTask; public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity-->"; private XListView xlistview; private ViewPager viewpager; private RadioGroup radiogroup; private List<String> imageadd; private int index = 0; private int count = 1; private boolean flag = false; Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 1: viewpager.setCurrentItem(index); break; } } }; private xladapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); xlistview = (XListView) findViewById(R.id.xlv); viewpager = (ViewPager) findViewById(R.id.viewpager); radiogroup = (RadioGroup) findViewById(R.id.radiogroup); imageadd = new ArrayList<String>(); imageadd.add("http://tnfs.tngou.net/image/info/150912/6f1f81106d337d769882e34f481cc191.jpg"); imageadd.add("http://tnfs.tngou.net/image/info/150912/2214b610bf24022d8d79eb6e616754fb.jpg"); imageadd.add("http://tnfs.tngou.net/image/info/150822/d35a601b668c160a07c43d4925af9007.jpg"); viewpager.setAdapter(new viewadapter()); banner(); viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { for (int i = 0; i < imageadd.size(); i++) { RadioButton radioButton = (RadioButton) radiogroup.getChildAt(i); if (i == (position % imageadd.size())) { radioButton.setChecked(true); } else { radioButton.setChecked(false); } } } @Override public void onPageScrollStateChanged(int state) { } }); try { read("http://apis.juhe.cn/cook/query.php?key=35f9f65629365ddde8321dce7aaa198f&menu=" + URLEncoder.encode("秘制红烧肉", "utf-8") + "&pn" + count + "&rn=10"); } catch (Exception e) { e.printStackTrace(); } } class viewadapter extends PagerAdapter { DisplayImageOptions options = new DisplayImageOptions.Builder() .cacheInMemory(true) .cacheOnDisk(true) .build(); @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } @Override public Object instantiateItem(ViewGroup container, int position) { ImageView ime = new ImageView(MainActivity.this); ImageLoader.getInstance().displayImage(imageadd.get(position % imageadd.size()), ime, options); container.addView(ime); return ime; } } private void banner() { new Timer().schedule(new TimerTask() { @Override public void run() { ++index; handler.sendEmptyMessage(1); } }, 0, 3000); } private void read(String path) { new AsyncTask<String, Void, String>() { @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); MenuInfo menuInfo = gson.fromJson(s, MenuInfo.class); List<MenuInfo.ResultBean.DataBean> list = menuInfo.getResult().getData(); if (adapter == null) { adapter = new xladapter(list); xlistview.setAdapter(adapter); } else { adapter.ad(list, flag); adapter.notifyDataSetChanged(); } xlistview.setPullLoadEnable(true); xlistview.setXListViewListener(new XListView.IXListViewListener() { @Override public void onRefresh() { count++; try { read("http://apis.juhe.cn/cook/query.php?key=35f9f65629365ddde8321dce7aaa198f&menu=" + URLEncoder.encode("秘制红烧肉", "utf-8") + "&pn" + count + "&rn=10"); } catch (Exception e) { e.printStackTrace(); } flag = true; xlistview.stopRefresh(true); } @Override public void onLoadMore() { count++; try { read("http://apis.juhe.cn/cook/query.php?key=35f9f65629365ddde8321dce7aaa198f&menu=" + URLEncoder.encode("秘制红烧肉", "utf-8") + "&pn" + count + "&rn=10"); } catch (Exception e) { e.printStackTrace(); } flag = false; xlistview.stopLoadMore(); } }); } @Override protected String doInBackground(String... params) { try { String path = params[0]; URL url = new URL(path); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); int code = connection.getResponseCode(); if (code == 200) { InputStream is = connection.getInputStream(); String json = SeatInfo.add(is); return json; } } catch (Exception e) { e.printStackTrace(); } return null; } }.execute(path); } class xladapter extends BaseAdapter { List<MenuInfo.ResultBean.DataBean> list; public xladapter(List<MenuInfo.ResultBean.DataBean> list) { this.list = list; } DisplayImageOptions options = new DisplayImageOptions.Builder() .cacheInMemory(true) .cacheOnDisk(true) .build(); private void ad(List<MenuInfo.ResultBean.DataBean> lists, boolean flag) { for (MenuInfo.ResultBean.DataBean bean : lists ) { if (flag) { list.add(0, bean); } else { list.add(bean); } } } @Override public int getCount() { return list != null ? list.size() : 0; } @Override public Object getItem(int position) { return list.get(position); } @Override public int getViewTypeCount() { return 2; } @Override public int getItemViewType(int position) { if (position % 2 == 0) { return 0; } else { return 1; } } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { int type = getItemViewType(position); viewholder vh1 = null; viewholder2 vh2 = null; switch (type) { case 0: if (convertView == null) { vh1 = new viewholder(); convertView = convertView.inflate(MainActivity.this, R.layout.item, null); vh1.imv1 = (ImageView) convertView.findViewById(R.id.iv); vh1.tv1 = (TextView) convertView.findViewById(R.id.tv); convertView.setTag(vh1); } else { vh1 = (viewholder) convertView.getTag(); } vh1.tv1.setText(list.get(position).getTags()); ImageLoader.getInstance().displayImage(list.get(position).getAlbums().get(0), vh1.imv1, options); break; case 1: if (convertView == null) { vh2 = new viewholder2(); convertView = convertView.inflate(MainActivity.this, R.layout.item2, null); vh2.imv2 = (ImageView) convertView.findViewById(R.id.ivm); vh2.tv2 = (TextView) convertView.findViewById(R.id.tvm); convertView.setTag(vh2); } else { vh2 = (viewholder2) convertView.getTag(); } vh2.tv2.setText(list.get(position).getTags()); ImageLoader.getInstance().displayImage(list.get(position).getAlbums().get(0), vh2.imv2, options); break; } return convertView; } } class viewholder { ImageView imv1; TextView tv1; } class viewholder2 { TextView tv2; ImageView imv2; } }
轮播图加载Imageloader图片,Xlistview上拉下拉
最新推荐文章于 2019-08-01 12:13:00 发布