异步加载数据,无限轮播,
来源:互联网 发布:网络盒子加密软件 编辑:程序博客网 时间:2024/05/21 23:01
package com.example.fanjie.myapplication.fragment;import android.os.AsyncTask;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.TextView;import com.example.fanjie.myapplication.Bean.Bean;import com.example.fanjie.myapplication.Bean.Bean03;import com.example.fanjie.myapplication.R;import com.example.fanjie.myapplication.view.XListView;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.ImageLoader;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.ArrayList;import java.util.List;import static com.example.fanjie.myapplication.R.id.linearlayout;/** * author:Created by WangZhiQiang on 2017/9/19. */public class Fragment1 extends Fragment implements XListView.IXListViewListener { private View view; private XListView mlistview; private ViewPager viewpager; private LinearLayout linearLayout; private StringBuilder builder; List<Bean.DataBean.ComicsBean> list=null; private ArrayList<Bean03> list02; private ArrayList<ImageView> imglist; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment1, container, false); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mlistview = (XListView) view.findViewById(R.id.myxlistview); mlistview.setPullLoadEnable(true); View vie = View.inflate(getActivity(), R.layout.viewpager, null); mlistview.addHeaderView(vie); viewpager = (ViewPager) vie.findViewById(R.id.viewpager); linearLayout = (LinearLayout) vie.findViewById(linearlayout); new Myasynctask().execute("http://api.kkmh.com/v1/daily/comic_lists/0?since=0&gender=0&sa_event=eyJwcm9qZWN0Ijoia3VhaWthbl9hcHAiLCJ0aW1lIjoxNDg3NzQyMjQwNjE1LCJwcm9wZXJ0aWVzIjp7IkhvbWVwYWdlVGFiTmFtZSI6IueDremXqCIsIlZDb21tdW5pdHlUYWJOYW1lIjoi54Ot6ZeoIiwiJG9zX3ZlcnNpb24iOiI0LjQuMiIsIkdlbmRlclR5cGUiOiLlpbPniYgiLCJGcm9tSG9tZXBhZ2VUYWJOYW1lIjoi54Ot6ZeoIiwiJGxpYl92ZXJzaW9uIjoiMS42LjEzIiwiJG5ldHdvcmtfdHlwZSI6IldJRkkiLCIkd2lmaSI6dHJ1ZSwiJG1hbnVmYWN0dXJlciI6ImJpZ25veCIsIkZyb21Ib21lcGFnZVVwZGF0ZURhdGUiOjAsIiRzY3JlZW5faGVpZ2h0IjoxMjgwLCJIb21lcGFnZVVwZGF0ZURhdGUiOjAsIlByb3BlcnR5RXZlbnQiOiJSZWFkSG9tZVBhZ2UiLCJGaW5kVGFiTmFtZSI6IuaOqOiNkCIsImFidGVzdF9ncm91cCI6MTEsIiRzY3JlZW5fd2lkdGgiOjcyMCwiJG9zIjoiQW5kcm9pZCIsIlRyaWdnZXJQYWdlIjoiSG9tZVBhZ2UiLCIkY2FycmllciI6IkNoaW5hIE1vYmlsZSIsIiRtb2RlbCI6IlZQaG9uZSIsIiRhcHBfdmVyc2lvbiI6IjMuNi4yIn0sInR5cGUiOiJ0cmFjayIsImRpc3RpbmN0X2lkIjoiQTo2YWRkYzdhZTQ1MjUwMzY1Iiwib3JpZ2luYWxfaWQiOiJBOjZhZGRjN2FlNDUyNTAzNjUiLCJldmVudCI6IlJlYWRIb21lUGFnZSJ9"); } Handler handler2 = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); int i = viewpager.getCurrentItem() + 1; viewpager.setCurrentItem(i); handler2.sendEmptyMessageDelayed(0,3000); } }; private void inindot() { imglist = new ArrayList<>(); if (imglist != null) { imglist.clear(); } for (int i = 0; i < list02.size(); i++) { ImageView iv = new ImageView(getActivity()); if (i == 0) { iv.setImageResource(R.drawable.dot_focus); } else { iv.setImageResource(R.drawable.dot_normal); } imglist.add(iv); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(20, 20); params.setMargins(10, 0, 10, 0); linearLayout.addView(iv,params); } } @Override public void onRefresh() { } @Override public void onLoadMore() { } class Myasynctask extends AsyncTask<String, Void, String> { private Myadapter myadapter; //请求数据 @Override protected String doInBackground(String... strings) { try { //获取url URL url = new URL(strings[0]); //请求网络 HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); //设置post请求 //urlConnection.setRequestMethod("POST"); int code = urlConnection.getResponseCode(); //判断是否返回成功 if (code == 200) { //获取网络信息 InputStream inputStream = urlConnection.getInputStream(); BufferedReader bf = new BufferedReader(new InputStreamReader(inputStream)); builder = new StringBuilder(); String s = ""; while ((s = bf.readLine()) != null) { builder.append(s); } } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return builder.toString(); } //运行在主线程 @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); Bean bean = gson.fromJson(s, Bean.class); Bean.DataBean data = bean.getData(); list = data.getComics(); myadapter = new Myadapter(); mlistview.setAdapter(myadapter); list02 = new ArrayList<>(); for (int j = 0; j < 5; j++) { list02.add(new Bean03(list.get(j).getCover_image_url())); } viewpager.setAdapter(new Myadapter2()); inindot(); handler2.sendEmptyMessageDelayed(0,3000); viewpager.setCurrentItem(1000*imglist.size()); viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { for (int x = 0; x < imglist.size(); x++) { if (position%imglist.size() == x) { imglist.get(position%imglist.size()).setImageResource(R.drawable.dot_focus); } else { imglist.get(x).setImageResource(R.drawable.dot_normal); } } } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); } } class Myadapter2 extends PagerAdapter { @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object instantiateItem(ViewGroup container, int position) { View view = View.inflate(getActivity(), R.layout.vp, null); ImageView imageView3 = (ImageView) view.findViewById(R.id.imageView3); ImageLoader.getInstance().displayImage(list02.get(position%imglist.size()).getImg(),imageView3); container.addView(view); return view; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); handler2.removeCallbacksAndMessages(null); } } class Myadapter 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 ViewHolder { TextView tv; ImageView img, img2; } @Override public int getItemViewType(int position) { if (position % 2 == 0) { return 0; } else { return 1; } } @Override public int getViewTypeCount() { return 2; } @Override public View getView(int i, View view, ViewGroup viewGroup) { int type = getItemViewType(i); ViewHolder vh; if (type == 0) { if (view == null) { vh = new ViewHolder(); view = View.inflate(getActivity(), R.layout.list1, null); vh.tv = (TextView) view.findViewById(R.id.textView); vh.img = (ImageView) view.findViewById(R.id.imageView); vh.img2 = (ImageView) view.findViewById(R.id.imageView2); view.setTag(vh); } else { vh = (ViewHolder) view.getTag(); } vh.tv.setText(list.get(i).getTitle()); ImageLoader.getInstance().displayImage(list.get(i).getCover_image_url(), vh.img); ImageLoader.getInstance().displayImage(list.get(i).getTopic().getCover_image_url(), vh.img2); } else { if (view == null) { vh = new ViewHolder(); view = View.inflate(getActivity(), R.layout.list2, null); vh.tv = (TextView) view.findViewById(R.id.textView); vh.img = view.findViewById(R.id.imageView); view.setTag(vh); } else { vh = (ViewHolder) view.getTag(); } vh.tv.setText(list.get(i).getTitle()); ImageLoader.getInstance().displayImage(list.get(i).getCover_image_url(), vh.img); } return view; }}}
dot_focus
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <solid android:color="#ff0000" /> <corners android:radius="5dip" /> </shape>dot_normal
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <solid android:color="#3366FF" /> <corners android:radius="5dip" /> </shape>//布局<?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"> <com.example.fanjie.myapplication.view.XListView android:id="@+id/myxlistview" android:layout_width="match_parent" android:layout_height="match_parent"></com.example.fanjie.myapplication.view.XListView></LinearLayout>//无限轮播布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/imageView3" android:layout_width="match_parent" android:layout_height="match_parent" app:srcCompat="@mipmap/ic_launcher" />//头布局</LinearLayout><?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="200dp"></android.support.v4.view.ViewPager> <LinearLayout android:id="@+id/linearlayout" android:gravity="center" android:layout_alignParentBottom="true" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> </LinearLayout></RelativeLayout>
阅读全文
0 0
- 异步加载数据,无限轮播,
- 无限轮播异步加载
- ViewPager无限轮播,加载网络数据,ImageLoader加载图片并缓存到SD卡上
- ViewPager无限轮播,加载网络数据,ImageLoader加载图片并缓存到SD卡上
- ViewPager网络加载图片+无限轮播
- ViewPager加载图片自动无限轮播
- ImageLoader加载网络图片无限轮播
- 网络加载图片的无限轮播
- jquery.simple.tree 支持无限级分类,异步加载数据
- 瀑布流 下拉无限加载 json异步数据
- ViewPager网络加载图片并无限轮播实现
- ViewPager无限轮播(网上加载图片)
- ViewPager无限轮播支持加载网络图片
- XLisetView+ViewPager无限轮播+多条目加载
- Banner实现无限轮播Glide加载图片
- viewpager无限轮播
- 无限轮播加点
- Viewpager无限轮播
- 统计学简介之九——两个总体参数的区间估计
- 9.16 第四题 数论 欧拉筛+唯一分解定理
- 小米笔试题第1题
- am335x 内核源码分析2 LCD移植
- hihoCoder1331—扩展二进制数
- 异步加载数据,无限轮播,
- 20. Valid Parentheses
- caffe:把pb格式的文件均值(mean.binaryproto)转换成numpy格式的文件均值(mean.npy)
- poj 3177 Redundant Paths(Tarjan,边双连通分量)
- 机器学习-1-.py文件的导入问题
- iOS GPUImage研究序一:内置滤镜
- 深入理解MySQL索引
- yii2 表单小部件默认选中的方法
- PullToRefreshListView刷新下拉加载最简单用法