android欢迎向导页面

 

实现思路:打开app第一次进入的是logo界面,这个界面只有一个背景图片,进入界面之后发送一个延时1秒的消息,1秒后执行handler。

在sp中保存一个boolean类型的isFirst来标志是否是第一次进入到欢迎向导界面,默认是ture,意思就是是第一次进入;

如果是第一次进入直接进入欢迎向导界面(WelcomeActivity),否则进入主页面;

从图中可以看出WelcomeActivity的布局是一个VIewPager,当欢动到最后一个pager的时候布局中显示一个进入主页面的Button。

当点击这个Button的时候进入主页面并且把sp中boolean类型的isFirst设置为false;作用就是下一次打开app的时候直接进入主页面;

 

主页面和Logo的布局就不在粘贴了,只有一个textview和ImageView

我们看下欢迎向导页面的代码吧:

 

public class WelcomeActivity extends Activity{

    private ViewPager mViewPager;
    private int[] imageIds={R.drawable.guide_1,R.drawable.guide_6,R.drawable.guide_8};
    private List<ImageView> imageViewList;
    private Button mButton;
    private SharedPreferences sp;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_welcome);
        sp=getSharedPreferences("config",MODE_PRIVATE);
        mViewPager= (ViewPager) findViewById(R.id.viewpager);
        mButton= (Button) findViewById(R.id.button);

        //设置点击事件,当点击进入主页面时跳转到主页面,并且把sp中的isFirst设置为false,下次进入直接跳过欢迎向导界面进入主页面
        mButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(WelcomeActivity.this,MainActivity.class);
                startActivity(intent);
                finish();
                sp.edit().putBoolean("isFirst",false).commit();
            }
        });

        imageViewList=new ArrayList<ImageView>();
        for (int x=0 ;x<imageIds.length;x++){
            ImageView iv=new ImageView(this);
            iv.setBackgroundResource(imageIds[x]);
            imageViewList.add(iv);
        }

        adapter=new MyViewPagerAdapter();
        mViewPager.setAdapter(adapter);

        //设置页面改变监听
        mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                //当页面选择发生改变的时候
                //如果是最后一个页面,显示进入主页面的button
                if(position==adapter.getCount()-1){
                    mButton.setVisibility(View.VISIBLE);
                }else {
                    mButton.setVisibility(View.GONE);
                }
            }
            @Override
            public void onPageSelected(int position) {
                //当页面滑动的时候
            }
            @Override
            public void onPageScrollStateChanged(int state) {
                //当页面滑动状态发生改变的时候
            }
        });
    }
    private MyViewPagerAdapter adapter;
    class MyViewPagerAdapter extends PagerAdapter{
        @Override
        public int getCount() {
            return imageViewList.size();
        }
        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            ImageView view=imageViewList.get(position);
            container.addView(view);
            return view;
        }
        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view==object;
        }
        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView((View) object);
        }
    }

}


源码下载地址

 

 

 

  

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值