继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

小白来看:如何App实现引导页和欢迎页呢?

萧一郎
关注TA
已关注
手记 11
粉丝 15
获赞 320

首先我们明白,引导页和欢迎页是指什么,那么他们都有什么作用。
(要代码同学留下邮箱。)
欢迎页:这个在我们的微信里面就有这个,我们每一次打开微信的时候都有一个地球,那么这样就是欢迎页。欢迎页具有良好的数据缓存作用。
引导页:就是我们没次安装一个app的时候,前面都有几个图片。那么这个引导页有哪些作用,第一:它有教我们怎么使用这个app和接受这app。第二:有宣传的作用。

图片描述


我们在这个功能中用到的知识点有ViewPage、ViewPage的适配器PageAdapter、ViewPage的滑动改变事件、、RadioGroupRadioButton的点击事件。
好,现在我们接下来上代码了。
图片描述
这个就是我的项目结构。其中WActivity.class是欢迎页、FActivity.class是引导页、MyAdapter.class是ViewPage的适配、BasePageListen实现页面滑动的接口。

第一个我们先写WActivity这个类。

package com.example.office.startapp;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class WActivity extends AppCompatActivity {
     private SharedPreferences sp;
     private boolean isFirst;
    //欢迎页面
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_w);
        //获得共享参数对象
        sp=getSharedPreferences("first", Context.MODE_PRIVATE);
        //参数二 如果sp文件中没有记录的话 返回的默认值
        isFirst=sp.getBoolean("isFirst",true);
        //这里面的判断就是 如果是第一次进入app 那就跳转引导页
        //不是第一次就跳到主页面
        new Handler().postDelayed(new Runnable() {
            SharedPreferences.Editor editor;
            Intent intent;
            @Override
            public void run() {
                if(isFirst){
                    intent =new Intent(WActivity.this,FActivity.class);
                    startActivity(intent);
                    WActivity.this.finish();
                    //把数据保存到sp里面
                    //获取可以向sp里面写入数据的对象
                    editor=sp.edit();
                    editor.putBoolean("first",false);
                    //提交我们的数据
                    editor.commit();
                }else {
                    intent=new Intent(WActivity.this,MainActivity.class);
                    startActivity(intent);
                    WActivity.this.finish();
                }
            }
        },1500);
    }
}

下面我们就写MyAdpter这个类

import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import java.util.List;

/**
 * Created by OFFICE on 2016/8/9.
 */
public class MyAdapter extends PagerAdapter{
    private List< ImageView > list;

    private Context context;

    public MyAdapter(Context context, List<ImageView> list) {
        this.context = context;
        this.list = list;
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view==object;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        container.addView(list.get(position));
        return list.get(position);
    }
    //里面有一个方法必须删除super.不删除会报错
    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View)object);
    }
}

我们写BasePageListen这个类


import android.support.v4.view.ViewPager;

/**
 * Created by OFFICE on 2016/8/9.
 */
public class BasePageListen implements ViewPager.OnPageChangeListener{
    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
    }
    @Override
    public void onPageSelected(int position) {
    }
    @Override
    public void onPageScrollStateChanged(int state) {
    }
}

最后我们写FActivit

import android.content.Intent;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import java.util.ArrayList;
import java.util.List;

//引导页

public class FActivity extends AppCompatActivity {
    private List<ImageView> list;
    private RadioGroup radioGroup;
    private ViewPager viewPager;
    private ImageView imageView1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_f);
        viewPager= (ViewPager) findViewById(R.id.viewPage);
        radioGroup= (RadioGroup) findViewById(R.id.radiogroup);
        imageView1= (ImageView) findViewById(R.id.image) ;
        initView();
        imageView1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(FActivity.this, MainActivity.class);
                startActivity(intent);
                FActivity.this.finish();
            }
        });
        MyAdapter myAdapter=new MyAdapter(this,list);
        viewPager.setAdapter(myAdapter);
        //viewPage变动RadioButton也在变动
        viewPager.addOnPageChangeListener(new BasePageListen(){
            @Override
            public void onPageSelected(int position) {
                RadioButton radioButton= (RadioButton) radioGroup.getChildAt(position);
                radioButton.setChecked(true);
                if(position==list.size()-1){
                    imageView1.setVisibility(View.VISIBLE);
                }else {
                    imageView1.setVisibility(View.GONE);
                }
            }
        });
        //当点击RadioButton的时候,viewpage也在改变
        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                viewPager.setCurrentItem(checkedId);
            }
        });
    }
    private void initView(){
        int [] images={R.mipmap.yd1,R.mipmap.yd2,R.mipmap.yd3};
        list=new ArrayList<ImageView>();
        for(int i=0;i<images.length;i++){
            ImageView imageView=new ImageView(this);
            imageView.setImageResource(images[i]);
            list.add(imageView);
            RadioButton radioButton=new RadioButton(this);
            //设置radioButton的id
            radioButton.setId(i);
            //把ReaioButton放在group
            radioGroup.addView(radioButton);
        }
        //设置默认选中的第一个按钮
        //获得下标为0的按钮对象
        RadioButton radioButton= (RadioButton) radioGroup.getChildAt(0);
        radioButton.setChecked(true);
    }
}

好了,复制上去就可以实现上面的效果。

打开App,阅读手记
22人推荐
发表评论
随时随地看视频慕课网APP

热门评论

wangbaokuo@foxmail.com   求源码,参考下

复制了不行啊,求共享代码!

复制完全部报错什么鬼

查看全部评论