向导页

android.support.v4.view.ViewPager
继承于ViewGroup, 是一个容器, 添加一系列的View

数据填充需要通过PagerAdapter(向导页)

ViewPager 通常和Fragment一起使用FragmentPagerAdapter(底部导航栏)


<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width=“match_parent”
android:layout_height=“match_parent”>
</android.support.v4.view.ViewPager>













ublic class MainActivity extends AppCompatActivity {
private ViewPager viewPager;//ViewPager容器
private TextView time_tv;//5秒倒计时
private Button start;//开始体验按钮
private MyPagerAdapter myPagerAdapter;//适配器
private ArrayList list=new ArrayList<>();//数据:4张View
private ArrayList icon_list=new ArrayList<>();//小圆点图片
private int current_item=0;//默认显示页
private int time=5;//默认剩余时间
private SharedPreferences preferences;//第2次打开不走向导页
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {//handler:自动轮播+5秒到技术
super.handleMessage(msg);
if(msg.what101){//自动轮播
viewPager.setCurrentItem(++current_item);//设置滚动下一页
}else if(msg.what
102){//5秒倒计时
time_tv.setText(“剩余时间”+(–time));
if(time==0){//页面跳转
Intent intent=new Intent(MainActivity.this,Main2Activity.class);
startActivity(intent);
}
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//设置二次打开不走向导页
preferences= getSharedPreferences(“welcome”, MODE_PRIVATE);
boolean flag=preferences.getBoolean(“isdone”,false);
if(flag){//若是第二次打开直接页面跳转
Intent intent=new Intent(MainActivity.this,Main2Activity.class);
startActivity(intent);
}
//TODO 加载视图
initview();
//TODO 加载圆点
initicon();
//TODO 加载数据
initdata();
//TODO 设置适配器
initadpter();
//TODO 设置事件监听
initListener();

    //TODO 自动轮播
    final Timer timer=new Timer();
    timer.schedule(new TimerTask() {
        @Override
        public void run() {
            if(current_item!=list.size()-1){//不是最后一页
                handler.sendEmptyMessage(101);//发送一个空的消息
            }else{
                timer.cancel();//如果是最后一页,直接取消定时器
            }
        }
    },0,1000);

}

private void initListener() {
    //开始按钮点击事件
    start.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent=new Intent(MainActivity.this,Main2Activity.class);
            startActivity(intent);
        }
    });
    //滑动viewPager的时候小圆点跟着走
    viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        //当页面滑动的时候调用
        @Override
        public void onPageScrolled(int i, float v, int i1) {
        }
        //当页面被选择的时候
        @Override
        public void onPageSelected(int i) {//1
            //TODO 将所有圆点变白,当前变灰
            for(int j=0;j<icon_list.size();j++){
                icon_list.get(j).setImageResource(R.drawable.icon02);
            }
            icon_list.get(i).setImageResource(R.drawable.icon01);

            //TODO 当最后一个页面的时候显示按钮,和显示倒计时
            if(i==icon_list.size()-1){
                start.setVisibility(View.VISIBLE);
                time_tv.setVisibility(View.VISIBLE);
                //TODO 倒计时更新剩余时间
                final Timer timer=new Timer();
                timer.schedule(new TimerTask() {
                    @Override
                    public void run() {
                        if(time>0){
                            handler.sendEmptyMessage(102);
                        }else{
                            timer.cancel();
                        }
                    }
                },0,1000);
            }else{
                start.setVisibility(View.GONE);
                time_tv.setVisibility(View.GONE);
            }
        }
        //当页面滑动状态改变的时候
        @Override
        public void onPageScrollStateChanged(int i) {

        }
    });
}

private void initadpter() {
    myPagerAdapter=new MyPagerAdapter(list,this);
    viewPager.setAdapter(myPagerAdapter);
}

private void initview() {
    viewPager=findViewById(R.id.pager);
    start=findViewById(R.id.start);
    time_tv=findViewById(R.id.time_tv);
}

private void initdata() {
    ImageView imageView1= new ImageView(this);
    imageView1.setImageResource(R.drawable.tp);
    list.add(imageView1);
    ImageView imageView2= new ImageView(this);
    imageView2.setImageResource(R.drawable.tp_01);
    list.add(imageView2);
    ImageView imageView3= new ImageView(this);
    imageView3.setImageResource(R.drawable.tp_02);
    list.add(imageView3);
    ImageView imageView4= new ImageView(this);
    imageView4.setImageResource(R.drawable.tp_04);
    list.add(imageView4);
    ImageView imageView5= new ImageView(this);
    imageView5.setImageResource(R.drawable.tp_06);
    list.add(imageView5);
}
private void initicon() {
    icon_list.add((ImageView) findViewById(R.id.icon1));
    icon_list.add((ImageView) findViewById(R.id.icon2));
    icon_list.add((ImageView) findViewById(R.id.icon3));
    icon_list.add((ImageView) findViewById(R.id.icon4));
    icon_list.add((ImageView) findViewById(R.id.icon5));
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
(3)Main2Activity.java :页面跳转

public class Main2Activity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);
    //SP 存储
    SharedPreferences.Editor welcome = getSharedPreferences("welcome", MODE_PRIVATE).edit();
    welcome.putBoolean("isdone",true);
    welcome.commit();
}

}
1
2
3
4
5
6
7
8
9
10
11
12
(4)适配器代码:

public class MyPagerAdapter extends PagerAdapter {
private ArrayList list;//数据
private Context context;
public MyPagerAdapter(ArrayList list, Context context) {
this.list = list;
this.context = context;
}
//TODO 返回数量
@Override
public int getCount() {
return list.size();
}
//TODO 判断view是否来自集合中
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
return view==o;
}
//TODO 根据下标加载View
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
//向容器中添加View
Log.i(“aaaaa”, position+"加载了: ");
container.addView(list.get(position));
return list.get(position);
}
//TODO 根据下标移除:不是移除集合中的,而是移除Viewgroup里面的
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
// super.destroyItem(container, position, object);//注意:该方法不要写
//从容器中移除View
Log.i(“aaaaa”, position+"溢出了: ");
container.removeView(list.get(position));

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值