• 高仿拉手网欢迎页和引导页的详细代码实现


    前两天写了这个的主要实现的原理,没有写详细代码实现,看得人不多,如今写出详细代码

    代码贴出来,凝视已经非常具体,不多说,有问题能够留言 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提交
        }
    
        /**
         * 当返回空字符串则不存在
         * 
         * @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() {
            // 由于我们的引导页是在最后一个页面有一个button叫马上体验的
            // 本来button是默认不现实的。我们就须要监听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);
        }
    }


  • 相关阅读:
    使用Java和JS访问cookies
    详细介绍Java内存泄露原因
    Java与Unicode
    电子商务那点事
    request的一些常用方法
    一些java当中的名词解释
    rpc远程服务
    war包和jar包的区别
    为什么内存贵硬盘便宜
    分层开发的优势
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5166952.html
Copyright © 2020-2023  润新知