无限轮播

package com.wpl.xiangmu.yunifang.frgament;

import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;

import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.wpl.xiangmu.yunifang.activity.BaiduMapActivity;
import com.wpl.xiangmu.yunifang.utils.GetIntent;
import com.wpl.xiangmu.yunifang.R;
import com.wpl.xiangmu.yunifang.activity.AllShopActivity;
import com.wpl.xiangmu.yunifang.activity.DuihuanActivity;
import com.wpl.xiangmu.yunifang.activity.HuiyuanActivity;
import com.wpl.xiangmu.yunifang.activity.JiFenActivity;
import com.wpl.xiangmu.yunifang.activity.ZhenWeiActivity;
import com.wpl.xiangmu.yunifang.adapter.IndexListviewAdapter;
import com.wpl.xiangmu.yunifang.adapter.IndexPagerAdapter;
import com.wpl.xiangmu.yunifang.bean.IndexData;
import com.wpl.xiangmu.yunifang.bean.IndexData.Ad1;
import com.wpl.xiangmu.yunifang.bean.IndexData.Ad5;
import com.wpl.xiangmu.yunifang.bean.IndexData.GroupBriefs;
import com.wpl.xiangmu.yunifang.utils.NetWorkUtils;

import java.util.ArrayList;

public class IndexFragment extends Fragment {
    public View v;
    private ViewPager vp;
    private String path = "http://m.yunifang.com/yunifang/mobile/home?random=17257&encode=56f7b9f64804f3c6423bb3ee62eab517";
    private String huiyuanpath="http://mobile.hmeili.com/yunifang/web/member/gift";
    private String xinrenpath="http://mobile.hmeili.com:7900/yunifang/web/help/cash";
    private ArrayList<Ad1> imglist;
    private ImageView img_qiaodao;
    private ImageView img_jifen;
    private ImageView img_duihuan;
    private ImageView img_chaxun;
    private TextView tv_qiandao;
    private TextView tv_jifen;
    private TextView tv_duihuan;
    private TextView tv_chaxun;
    private ListView lv;
    private TextView mAll_shop;
    private ImageView mChoujiang;
    private ImageView mxinren;
    private ImageView mHuiyuanquanyi;
    private ScrollView mScl;
    private ImageView address;
    private Handler mhandler = new Handler() {
        public void handleMessage(android.os.Message msg) {
            int a = msg.what;
            switch (a) {
                case 0:
                    vp.setCurrentItem(100000);
                    vp.setAdapter(new IndexPagerAdapter(getActivity(), imglist, mhandler));
                    sendEmptyMessage(1);
                    break;
                case 1:
                    int count = vp.getCurrentItem();
                    count++;
                    vp.setCurrentItem(count);
                    mhandler.sendEmptyMessageDelayed(1, 2000);
                    break;

                default:
                    break;
            }
        }
    };

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        v = inflater.inflate(R.layout.shouye, null);
        return v;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onActivityCreated(savedInstanceState);

        // 获取控件
        initview();

        //判断网络
        boolean is = GetIntent.GetInfo(getActivity());
        if (is) {
            // 获取数据
            initData();
        } else {
            Toast.makeText(getActivity(), "没有网路连接", Toast.LENGTH_LONG).show();
        }

        mScl.setFocusable(true);

        //全部商品的点击事件
        mAll_shop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getActivity(), AllShopActivity.class);
                startActivity(intent);
            }
        });
        //积分商城
        img_jifen.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getActivity(), JiFenActivity.class);
                startActivity(intent);
            }
        });
        //兑换
        img_duihuan.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getActivity(), DuihuanActivity.class);
                startActivity(intent);
            }
        });
        //查询
        img_chaxun.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getActivity(), ZhenWeiActivity.class);
                startActivity(intent);
            }
        });
        //会员权益
        mHuiyuanquanyi.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent in = new Intent(getActivity(), HuiyuanActivity.class);
                in.putExtra("path",huiyuanpath);
                in.putExtra("name","会员权益");
                startActivity(in);
            }
        });
        //新人首单
        mxinren.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent in = new Intent(getActivity(), HuiyuanActivity.class);
                in.putExtra("path",xinrenpath);
                in.putExtra("name","新用户首单立减20元");
                startActivity(in);
            }
        });

        //百度地图
        Baidu();
    }

    /**
     * 百度地图
     */
    private void Baidu() {
        //百度地图定位
        address.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getActivity(), BaiduMapActivity.class);
                startActivity(intent);
            }
        });
    }

    /**
     * 获取数据
     */
    private void initData() {
        new AsyncTask<Void, Void, String>() {

            @Override
            protected String doInBackground(Void... params) {
                // 调用请求方法
                String json = NetWorkUtils.getstr(path);
                return json;
            }

            @Override
            protected void onPostExecute(String result) {
                super.onPostExecute(result);
                // 解析
                Gson gson = new Gson();
                IndexData bean = gson.fromJson(result, IndexData.class);
                imglist = bean.data.ad1;
                ArrayList<Ad5> ivList = bean.data.ad5;
                ArrayList<IndexData.Ad3> choujiang = bean.data.ad3;
                ArrayList<IndexData.Ad4> xinren = bean.data.ad4;
                ArrayList<GroupBriefs> grouplist = bean.data.groupBriefs;

                //listview的适配器
                lv.setAdapter(new IndexListviewAdapter(getActivity(), grouplist));
                lv.setFocusable(false);


                //给图片和文字赋值
                tv_qiandao.setText(ivList.get(0).title);
                tv_jifen.setText(ivList.get(1).title);
                tv_duihuan.setText(ivList.get(2).title);
                tv_chaxun.setText(ivList.get(3).title);
                ImageLoader imageLoader = ImageLoader.getInstance();
                imageLoader.displayImage(ivList.get(0).image, img_qiaodao);
                imageLoader.displayImage(ivList.get(1).image, img_jifen);
                imageLoader.displayImage(ivList.get(2).image, img_duihuan);
                imageLoader.displayImage(ivList.get(3).image, img_chaxun);
                imageLoader.displayImage(choujiang.get(0).lottery_img, mChoujiang);
                imageLoader.displayImage(xinren.get(0).image, mxinren);
                imageLoader.displayImage(xinren.get(1).image, mHuiyuanquanyi);

                // 发送空消息
                mhandler.sendEmptyMessage(0);
            }
        }.execute();
    }

    /**
     * 获取控件
     */
    private void initview() {
        vp = (ViewPager) v.findViewById(R.id.vp);
        img_qiaodao = (ImageView) v.findViewById(R.id.qiaodao);
        img_jifen = (ImageView) v.findViewById(R.id.jifen);
        img_duihuan = (ImageView) v.findViewById(R.id.duihuan);
        img_chaxun = (ImageView) v.findViewById(R.id.chaxun);
        tv_qiandao = (TextView) v.findViewById(R.id.qiandao_tv);
        tv_jifen = (TextView) v.findViewById(R.id.jifen_tv);
        tv_duihuan = (TextView) v.findViewById(R.id.duihuan_tv);
        tv_chaxun = (TextView) v.findViewById(R.id.chaxun_tv);
        mScl = (ScrollView) v.findViewById(R.id.scl);
        lv = (ListView) v.findViewById(R.id.lv);
        mAll_shop = (TextView) v.findViewById(R.id.all);
        mChoujiang = (ImageView) v.findViewById(R.id.choujiang);
        mxinren = (ImageView) v.findViewById(R.id.xinren);
        mHuiyuanquanyi = (ImageView) v.findViewById(R.id.huiyuanquanyi);
        //百度地图定位
        address = (ImageView) v.findViewById(R.id.address);
    }
}

适配器

package com.wpl.xiangmu.yunifang.adapter;

import android.content.Context;
import android.os.Handler;
import android.support.v4.view.PagerAdapter;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.nostra13.universalimageloader.core.ImageLoader;
import com.wpl.xiangmu.yunifang.utils.MyInit;
import com.wpl.xiangmu.yunifang.R;
import com.wpl.xiangmu.yunifang.bean.IndexData.Ad1;

import java.util.ArrayList;


public class IndexPagerAdapter extends PagerAdapter {

    Context context;
    ArrayList<Ad1> imglist;
    Handler mhandler;
    public IndexPagerAdapter(Context context, ArrayList<Ad1> imglist, Handler mhandler) {
        this.context=context;
        this.imglist=imglist;
        this.mhandler=mhandler;
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return Integer.MAX_VALUE;
    }

    @Override
    public boolean isViewFromObject(View arg0, Object arg1) {
        // TODO Auto-generated method stub
        return arg0==arg1;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        // TODO Auto-generated method stub
        container.removeView((View) object);
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        // 获取视图
        View v = View.inflate(context, R.layout.index_vp_item, null);
        ImageView img = (ImageView) v.findViewById(R.id.vp_img);
        img.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                // TODO Auto-generated method stub
                switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN: // 手指按下的事件
                        // 全部取消
                        mhandler.removeCallbacksAndMessages(null);
                        break;
                    case MotionEvent.ACTION_UP: // 手指抬起的事件
                        mhandler.sendEmptyMessageDelayed(1, 2000);
                        break;

                    case MotionEvent.ACTION_CANCEL: // 取消的事件
                        mhandler.sendEmptyMessageDelayed(1, 2000);
                        break;

                    default:
                        break;
                }
                return true;
            }
        });

        //赋值
        ImageLoader.getInstance().displayImage(imglist.get(position%imglist.size()).image, img, MyInit.options());
        container.addView(v);
        return v;
    }

}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值