android使用ViewPager實現歡迎引導頁

jopen 8年前發布 | 18K 次閱讀 Android開發 移動開發

android使用ViewPager實現歡迎引導頁

大多數APP第一次啟動的時候,都會有一個引導界面,左右滑動,到最后一張,用戶點擊才再次進入主界面。當第二次啟動的時候,則直接進入主界面。 這種效果一般使用ViewPager實現。今天就來為大家介紹一下ViewPager的使用。

實現步驟:

使用SharedPerferences來記錄是否是第一次啟動APP,如果是,則轉跳到Guide頁面,如果不是第一次啟動。就轉跳到主Activity.

MainActivity:

本Activity作為Logo頁面進入,使用handler來實現頁面的延遲專跳。對于handler還不太了解的同學,可以來這里學習一下安卓的異步消息傳遞機制:http://blog.csdn.net/guolin_blog/article/details/9991569 (感謝郭神帶來好文章)

private Handler mHandler = new Handler(){

    @Override
    public void handleMessage(Message msg) {
        switch (msg.what){
            case MAIN:
                Intent intent = new Intent(MainActivity.this,Main.class);
                startActivity(intent);
                finish();
                break;
            case GUIDE:
                Intent intent2 = new Intent(MainActivity.this,GuideView.class);
                startActivity(intent2);
                finish();
                break;
        }
    }
};</pre> <p>此外使用SharedPreferences來讀取用戶啟動信息</p>

mSharedPreferences = getSharedPreferences("conf",MODE_PRIVATE);
isFirst = mSharedPreferences.getBoolean("first",true);

之后進行簡單的判斷,這里不在累贅。

GuideActivity

這個界面是引導頁的界面,我們首先在其布局文件下添加一個ViewPager之后在java文件中獲取到這個ViewPager,并為這個ViewPager添加一個適配器。 這個適配器需要自己繼承PagerAdapter來重寫,稍后會進行講解。

 mViewPager = (ViewPager) findViewById(R.id.viewpager);
        ViewPagerAdapter adapter = new ViewPagerAdapter(mList);
        mViewPager.setAdapter(adapter);

注意這個Adapter的傳入參數是一個泛型為View的List。我們先向List里添加我們的View,再為最后一個view的Button添加監聽事件,用來轉跳到主頁面;

mList = new ArrayList<>();
View view = LayoutInflater.from(this).inflate(R.layout.layout1,null);
        mList.add(view);
        view = LayoutInflater.from(this).inflate(R.layout.layout2,null);
        mList.add(view);
        view = LayoutInflater.from(this).inflate(R.layout.layout3,null);
        mList.add(view);
        mButton = (Button) view.findViewById(R.id.button_enter);
        mButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(GuideView.this,Main.class);
                startActivity(intent);
                finish();

            }
        });

ViewPagerAdapter

這是ViewPager的適配器,繼承于PagerAdapter,主要實現兩個方法:
destroyItem();
instantiateItem();
顧名思義一個是view去掉時候的方法,一個是添加view的方法。
這里可以看到一個很熟悉的參數 container,沒錯,和baseAdapter的參數很像,都是用來緩存當前view的。接下來只需要調用他的removeView和addView即可。需要注意的是,需要向下轉型為ViewPager。

 public void destroyItem(ViewGroup container, int position, Object object) {
        ((ViewPager)container).removeView(mList.get(position));

    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        Log.i("wing","viewAdatper here");
        ((ViewPager)container).addView(mList.get(position));
        return mList.get(position);
    }

另外不要忘記重寫他的構造方法。傳入一個泛型為view的List

    public ViewPagerAdapter(ArrayList list){
        mList = list;
    }

這樣適配器就完成了,大家自己多寫幾遍就會熟練。對了,別忘了給每個view一個布局文件。

下面看看效果圖:
這里寫圖片描述

源碼下載地址

來自: http://blog.csdn.net/wingichoy/article/details/47102335

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!