向导页

    xiaoxiao2022-07-07  190

    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.what102){//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));

    }

    }

    最新回复(0)