splash2

本文介绍了一种在Android应用中实现轮播图的方法,包括图片加载、点击事件处理及页面切换监听等关键步骤。

1.首先写activity周期,
public void onCreate(Bundle myBundle) {
super.onCreate(myBundle);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_changeimages);
// —初始化,显示界面
// —新闻图片列表
imageViews = new ArrayList();
// —-显示图片状态标点
dots = new ArrayList();
ImageView imageview = new ImageView(this);
imageview.setBackgroundResource(R.drawable.wel1);
imageViews.add(imageview);

    ImageView imageview1 = new ImageView(this);
    imageview1.setBackgroundResource(R.drawable.wel2);
    imageViews.add(imageview1);

    ImageView imageview2 = new ImageView(this);
    imageview2.setBackgroundResource(R.drawable.wel3);
    imageViews.add(imageview2);

    ImageView imageview3 = new ImageView(this);
    imageview3.setBackgroundResource(R.drawable.wel4);
    imageViews.add(imageview3);

2.两个点击事件!
lijitiyan_btn = (Button) findViewById(R.id.lijitiyan_btn);
tiaoguo_text = (TextView) findViewById(R.id.tiaoguo_text);

lijitiyan_btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            if (!Const.curUserInfo.UserId.equals("0")) {
                // Intent myIntent = new
                // Intent(ChangeImageActivity.this,JngsHorizontalActivity.class);
                // startActivity(myIntent);
            } else {
                Intent myIntent = new Intent(ChangeImageActivity.this,
                        LoginActivity.class);
                startActivity(myIntent);
            }
            ChangeImageActivity.this.finish();
            GlobalData.SetSharedData((Context) ChangeImageActivity.this,
                    "initi", "1");
        }
    });
    tiaoguo_text.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            if (!Const.curUserInfo.UserId.equals("0")) {
                // Intent myIntent = new
                // Intent(ChangeImageActivity.this,JngsHorizontalActivity.class);
                // startActivity(myIntent);
            } else {
                Intent myIntent = new Intent(ChangeImageActivity.this,
                        LoginActivity.class);
                startActivity(myIntent);
            }
            ChangeImageActivity.this.finish();
            GlobalData.SetSharedData((Context) ChangeImageActivity.this,
                    "initi", "1");
        }
    });

    dots.add(findViewById(R.id.v_change_dot0));
    dots.add(findViewById(R.id.v_change_dot1));
    dots.add(findViewById(R.id.v_change_dot2));
    dots.add(findViewById(R.id.v_change_dot3));

3.通过adapter加载

viewPager = (ViewPager) findViewById(R.id.changeimage_vp);
    viewPager.setAdapter(new MyAdapter());// 设置填充ViewPager页面的适配器

4.通过setOnPageChangeListener监听页面的改变

    // 设置一个监听器,当ViewPager中的页面改变时调用
    viewPager.setOnPageChangeListener(new MyPageChangeListener());

5.写监听事件

private class MyPageChangeListener implements OnPageChangeListener {
private int oldPosition = 0;
public void onPageSelected(int position) {
currentItem = position;

        dots.get(oldPosition).setBackgroundResource(R.drawable.dot_normal);
        dots.get(position).setBackgroundResource(R.drawable.dot_focused);
        oldPosition = position;
        if (position == 3) {
            lijitiyan_btn.setVisibility(View.VISIBLE);
        } else {
            lijitiyan_btn.setVisibility(View.GONE);
        }
    }

    public void onPageScrollStateChanged(int arg0) {

    }

    public void onPageScrolled(int arg0, float arg1, int arg2) {

    }
}

7.adapter的填充

/**
* 填充ViewPager页面的适配器
*
* @author Administrator
*
*/
private class MyAdapter extends PagerAdapter {

    // 获取当前窗体界面数
    @Override
    public int getCount() {
        return imageViews.size();
    }

    // 这个方法,return一个对象,这个对象表明了PagerAdapter适配器选择哪个对象放在当前的ViewPager中
    @Override
    public Object instantiateItem(View arg0, int arg1) {
        ((ViewPager) arg0).addView(imageViews.get(arg1));
        return imageViews.get(arg1);
    }

    // 从ViewGroup中移出当前View
    @Override
    public void destroyItem(View arg0, int arg1, Object arg2) {
        ((ViewPager) arg0).removeView((View) arg2);
    }

    // 判断是否由对象生成界面
    @Override
    public boolean isViewFromObject(View arg0, Object arg1) {
        return arg0 == arg1;
    }

    @Override
    public void restoreState(Parcelable arg0, ClassLoader arg1) {

    }

    @Override
    public Parcelable saveState() {
        return null;
    }

    @Override
    public void startUpdate(View arg0) {

    }

    @Override
    public void finishUpdate(View arg0) {

    }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值