高仿拉手網歡迎頁面和引導頁的具體代碼實現

來源:互聯網
上載者:User

前兩天寫了這個的主要實現的原理,沒有寫具體代碼實現,看得人不多,現在寫出具體代碼

代碼貼出來,注釋已經很詳細,不多說,有問題可以留言 PS注意配合上一篇部落格看源碼會更簡單

SharedPreferencesUtil.java

package com.yufeng.yufenglashou.util;import android.content.Context;import com.yufeng.yufenglashou.moder.LaShouApplication;public class SharedPreferencesUtil {    public static void keepPreference(String key, String valse) {        // Context.MODE_PRIVATE代表在data/data下建立的喜好設定檔案是私人的        LaShouApplication.context                .getSharedPreferences("lashou", Context.MODE_PRIVATE).edit()                .putString(key, valse).commit();// 記得擷取edit對象後一定要commit提交    }    /**     * 當返回Null 字元串則不存在     *      * @param key     * @return     */    public static String getPreference(String key) {        // Context.MODE_PRIVATE代表在data/data下建立的喜好設定檔案是私人的        return LaShouApplication.context.getSharedPreferences("lashou",                Context.MODE_PRIVATE).getString(key, "");    }}

HomeActivity.java

package com.yufeng.yufenglashou;import android.app.Activity;import android.os.Bundle;import android.widget.Toast;public class HomeActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        Toast.makeText(this, "這是首頁", Toast.LENGTH_LONG).show();    }}

GuideActivity.java


package com.yufeng.yufenglashou;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;import com.yufeng.yufenglashou.adapter.GuideAdapter;public class GuideActivity extends Activity {    private Button guideButton;    private ViewPager guideViewPager;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.guide);        // 初始化view        setUpView();        // 給控制項添加監聽        addListener();    }    private void addListener() {        // 因為我們的引導頁是在最後一個頁面有一個按鈕叫立即體驗的        // 本來按鈕是預設不現實的,我們就需要監聽guideViewpage的onpageChageListener        guideViewPager.setOnPageChangeListener(new OnPageChangeListener() {            @Override            public void onPageSelected(int arg0) {                // 當滾動狀態的變化                // 我們只處理這裡就可以了                // 當為2的時候就是第三頁                if (arg0 == 2) {                    // 設定顯示                    guideButton.setVisibility(View.VISIBLE);                } else {                    // 設定不顯示                    guideButton.setVisibility(View.GONE);                }            }            @Override            public void onPageScrolled(int arg0, float arg1, int arg2) {                // 此方法將被調用時,當前頁面滾動,無論是作為一個程式啟動平滑滾動或使用者發起的觸摸滾動。            }            @Override            public void onPageScrollStateChanged(int arg0) {                // 此方法將被調用時,新的一頁,成為選擇。            }        });        guideButton.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View arg0) {                GuideActivity.this.startActivity(new Intent(GuideActivity.this,                        HomeActivity.class));            }        });    }    private void setUpView() {        guideButton = (Button) findViewById(R.id.guide_button);        guideViewPager = (ViewPager) findViewById(R.id.guide_viewpage);        // 整理歡迎介面圖片到控制項        List<View> guides = new ArrayList<View>();        ImageView imageView = new ImageView(this);        imageView.setImageResource(R.drawable.guide1);        guides.add(imageView);        ImageView imageView1 = new ImageView(this);        imageView1.setImageResource(R.drawable.guide2);        guides.add(imageView1);        ImageView imageView11 = new ImageView(this);        imageView11.setImageResource(R.drawable.guide3);        guides.add(imageView11);        GuideAdapter guideAdapter = new GuideAdapter(guides);        guideViewPager.setAdapter(guideAdapter);    }}

GuideAdapter.java


package com.yufeng.yufenglashou.adapter;import java.util.List;import android.support.v4.view.PagerAdapter;import android.view.View;import android.view.ViewGroup;public class GuideAdapter extends PagerAdapter {    private List<View> views;    public GuideAdapter(List<View> views) {        this.views = views;    }    @Override    public int getCount() {        return views.size();    }    @Override    public boolean isViewFromObject(View arg0, Object arg1) {        return arg0 == arg1;    }    // 刪除view    @Override    public void destroyItem(ViewGroup container, int position, Object object) {        container.removeView((View) object);        object = null;    }    // 添加view    @Override    public Object instantiateItem(ViewGroup container, int position) {        container.addView(views.get(position));        return views.get(position);    }}

LaShouApplication.java

package com.yufeng.yufenglashou.moder;import android.app.Application;import android.content.Context;/** * 建立application要在androidmanifest裡面註冊,不然是不會執行的 這個類在軟體最先啟動,最後掛 *  * @author Administrator *  */public class LaShouApplication extends Application {    /**     * 共用出自己以便其他地方用到     */    public static Context context;    @Override    public void onCreate() {        super.onCreate();        context = this;    }}

WelcomeActivity.java

package com.yufeng.yufenglashou;import com.yufeng.yufenglashou.moder.LaShouApplication;import com.yufeng.yufenglashou.util.SharedPreferencesUtil;import android.app.Activity;import android.content.Intent;import android.content.pm.PackageManager.NameNotFoundException;import android.os.Bundle;import android.os.Handler;import android.os.Handler.Callback;import android.os.Message;public class WelcomeActivity extends Activity {    private String versionName;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        try {            // 擷取我們項目包名的管理器並且擷取版本號碼            versionName = LaShouApplication.context.getPackageManager()                    .getPackageInfo("com.yufeng.yufenglashou", 0).versionName;        } catch (NameNotFoundException e) {            e.printStackTrace();        }        // 介面什麼都不做停留三秒以後執行到handlerMessage方法        new Handler(new Callback() {            @Override            public boolean handleMessage(Message msg) {                // 我們在這判斷是不是第一次開啟                if (SharedPreferencesUtil.getPreference(versionName).equals(                        "true")) {                    // 不是第一次開啟,跳轉到首頁                    WelcomeActivity.this.startActivity(new Intent(                            WelcomeActivity.this, HomeActivity.class));                } else {                    // 當取到的不是true就代表是""即沒有存入就是第一次開啟                    // 跳轉到引導頁                    WelcomeActivity.this.startActivity(new Intent(                            WelcomeActivity.this, GuideActivity.class));                    // 儲存已經開啟                    SharedPreferencesUtil.keepPreference(versionName, "true");                }                return false;            }        }).sendEmptyMessageDelayed(0, 1500);    }}


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.