Andriod开发 ViewPager实现引导页

ViewPager的简单实现在上一篇博客提到了,如果希望ViewPager的每一页更复杂,那就可以和ListView一样,写一个item的layout,用Adapter绑定。

1.item_launch.xml:

显示一张图片,下面有一组按钮组,显示第i张图片时,第i个按钮会选中。

然后最后一页有一个enter按钮,进入APP主界面




    

    

    

2.主界面:ViewPager




    

3.Adapter

在构造函数,就按顺序设置好各个page的View。

在instantiateItem方法中,直接根据位置得到View,放入容器中。

package com.example.chapter08;

import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter;

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

public class LaunchAdapter extends PagerAdapter {

    public List list;
    LaunchAdapter(Context context, int[] images){
        list = new ArrayList<>();
        for(int i=0;i{
                    Toast.makeText(context, "Enter the APP", Toast.LENGTH_SHORT).show();
                    context.startActivity(new Intent(context, PagerTabActivity.class));
                });
            }
            list.add(view);
        }
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
        return view==object;
    }

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        View v = list.get(position);
        container.addView(v);
        return v;
    }

    @Override
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        container.removeView(list.get(position));
    }
}

4.Activity java代码

package com.example.chapter08;

import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;

import android.os.Bundle;


public class LaunchActivity extends AppCompatActivity {
    public static final int[] images = {R.drawable.l1,R.drawable.l2,R.drawable.l3,R.drawable.l4};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_launch);

        ViewPager vp = findViewById(R.id.vp);

        LaunchAdapter adapter = new LaunchAdapter(this, images);
        vp.setAdapter(adapter);
    }
}

5.效果图

Andriod开发 ViewPager实现引导页_第1张图片

Andriod开发 ViewPager实现引导页_第2张图片

你可能感兴趣的:(APP开发,android,java)