异步加载数据,无限轮播,

来源:互联网 发布:网络盒子加密软件 编辑:程序博客网 时间: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>

原创粉丝点击