android欢迎向导页面

来源:互联网 发布:ldc1314数据手册 编辑:程序博客网 时间:2024/04/29 11:03


实现思路:打开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 0
原创粉丝点击