无限轮播+小圆点

package com.example.yuekao_1;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;

import com.example.adapter.MyPageAdapter;
import com.example.bean.Bean2;
import com.google.gson.Gson;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;

public class ShowActivity extends Activity {
    private ViewPager vp;
    private LinearLayout ll_dots;
    private TextView tv_title;
    private int position;
    private List<ImageView> dots;
    private HttpUtils httpUtils;

    Handler handler = new Handler() {
        public void handleMessage(android.os.Message msg) {
            if (msg.what == 0) {
                int currentItem = vp.getCurrentItem();
                currentItem++;
                vp.setCurrentItem(currentItem);
                handler.sendEmptyMessageDelayed(0, 2000);
            }
        };
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show);

        httpUtils = new HttpUtils();
        // 找控件
        vp = (ViewPager) findViewById(R.id.vp);
        ll_dots = (LinearLayout) findViewById(R.id.ll_dots);
        tv_title = (TextView) findViewById(R.id.tv_title);

        Intent intent = getIntent();
        String string = intent.getStringExtra("id");
        // position = intent.getIntExtra("ll", 0);

        int id = Integer.parseInt(string);

        getData(id);
    }

    private void getData(final int id) {
        httpUtils.send(HttpMethod.GET,
                "http://mobile.hmeili.com/yunifang/mobile/goods/detail?id="
                        + id, new RequestCallBack<String>() {

                    @Override
                    public void onFailure(HttpException arg0, String arg1) {
                        // TODO Auto-generated method stub

                    }

                    @Override
                    public void onSuccess(ResponseInfo<String> arg0) {
                        String string = arg0.result;
                        Gson gson = new Gson();
                        final Bean2 bean2 = gson.fromJson(string, Bean2.class);

                        dots = new ArrayList<ImageView>();
                        dots.clear();
                        ll_dots.removeAllViews();
                        for (int i = 0; i < bean2.data.goods.gallery.size(); i++) {
                            ImageView imageView = new ImageView(
                                    ShowActivity.this);
                            if (i == 0) {
                                imageView.setImageResource(R.drawable.focus);
                            } else {
                                imageView.setImageResource(R.drawable.noraml);
                            }
                            LayoutParams params = new LayoutParams(20, 20);
                            params.setMargins(5, 0, 5, 0);
                            dots.add(imageView);
                            ll_dots.addView(imageView, params);
                        }
                        vp.setAdapter(new MyPageAdapter(ShowActivity.this,
                                bean2, handler));

                        handler.sendEmptyMessageDelayed(0, 2000);
                        tv_title.setText(bean2.data.activity.get(position).title);
                        vp.setOnPageChangeListener(new OnPageChangeListener() {

                            public void onPageSelected(int arg0) {
                                for (int j = 0; j < bean2.data.goods.gallery
                                        .size(); j++) {
                                    if (j == arg0 % 4) {
                                        dots.get(j).setImageResource(
                                                R.drawable.focus);
                                    } else {
                                        dots.get(j).setImageResource(
                                                R.drawable.noraml);
                                    }
                                }
                            }

                            public void onPageScrolled(int arg0, float arg1,
                                    int arg2) {
                                // TODO Auto-generated method stub

                            }

                            public void onPageScrollStateChanged(int arg0) {
                                // TODO Auto-generated method stub

                            }
                        });
                    }
                });
    }
}





package com.example.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.example.bean.Bean2;
import com.example.utils.ImageLoaderUtils;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;

public class MyPageAdapter extends PagerAdapter {

    private Context context;
    private Bean2 bean2;
    private Handler handler;

    public MyPageAdapter(Context context, Bean2 bean2, Handler handler) {
        super();
        this.context = context;
        this.bean2 = bean2;
        this.handler = handler;
    }

    @Override
    public int getCount() {
        return Integer.MAX_VALUE;
    }

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

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        ImageView imageView = new ImageView(context);
        imageView.setOnTouchListener(new OnTouchListener() {

            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    handler.removeCallbacksAndMessages(null);
                    break;
                case MotionEvent.ACTION_CANCEL:
                    handler.sendEmptyMessageDelayed(0,2000);
                    break;
                case MotionEvent.ACTION_UP:
                    handler.sendEmptyMessageDelayed(0,2000);
                    break;

                default:
                    break;
                }
                return true;
            }
        });
        DisplayImageOptions options = ImageLoaderUtils.initOptions();
        ImageLoader.getInstance().displayImage(
                bean2.data.goods.gallery.get(position % 4).normal_url,
                imageView, options);
        container.addView(imageView);
        return imageView;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        // super.destroyItem(container, position, object);
        container.removeView((View) object);
    }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值