美文网首页
首页、闪屏页、引导页相关

首页、闪屏页、引导页相关

作者: iTsung | 来源:发表于2017-11-14 22:19 被阅读0次

    一般应用程序第一次进入会进入引导页,显示一些广告;之后再次进入会进入闪屏页面,显示一些广告,公司、个人的logo,同时进行数据的初始化、字体的自定义,然后直接进入首页页面

    isFirst = SASharedPreference.getBoolean(this, "is_first", true);//第一次为空,赋值为true

    if (isFirst) {

    进入引导页;

    SASharedPreference.putBoolean(this, "is_first", false);顺便修改isFirst值为false

    else {

    进入主页;

    }

    自定义主题

    在res/values目录下的style里自定义:

    <style name = "Theme1" parent = "Theme.AppCompat.Light.NoActionBar">

    <item name="windowNoTitle">true </item>

    <item name=""></item>

    ......

    </style>

    然后在清单文件AndroidManifest.xml文件中

    <activity android:name=""

    android:theme="@style/Theme1" 

    ></activity>

    //设置字体的封装 在main文件夹新建目录assets-fonts-(具体字体文件名.ttf)

    在静态工具类封装一个方法setFont

    public static void setFont(Context context,TextView textView) {

    Typeface typeface = Typeface.createFromAsset(context.getAssets(),"fonts/RobotoCondensed-BoldItalic.ttf");

    textView.setTypeface(typeface);

    }

    在主Activity调用UtilTools.setFont(tv_showPage);//tv_showPage是TextView对象

    打开app进入闪屏页(等待2秒),若是第一次就进入引导页面,若不是第一次就进入主页

    private Handler  handler = new Handler() {

    void handMessage(Message msg) {

      switch(msg.what) {

    case TAG://收到信息

    if (isFirst) {//进入引导页

    }else {//进入主页

    }

    break;

    }

    }

    };

    initView () {

    handler.sendEmptyMessageDelayed(TAG,2000);//延迟2000ms发送消息

    }

    引导页

    private List<View>  mView= new ArrayList<>();

    private View view1, view2, view3;

    view1= View.inflate(this,R.layout.page_item_one, null);

    ...

    mView.add(view1);//添加ViewPager的具体页面

    ...

    activity_guide.xml文件包含一个ViewPager和对应的共同布局(图片加文字)以及一个右上角的“跳过”(直接进入主activity)

    mViewPager.setAdapter(new GuideAdapter());

    写一个内部类GuideAdapter继承自PageAdapter,实现四个抽象方法

    class GuideAdapter extends PageAdapter {

    @Override

    public intgetCount() {

    returnmView.size();

    }

    @Override

    public booleanisViewFromObject(View view,Object object) {

    returnview == object;

    }

    //增加view

    @Override

    publicObjectinstantiateItem(ViewGroup container, intposition) {

    ((ViewPager)container).addView(mView.get(position));

    returnmView.get(position);

    }

    //删除view

    @Override

    public voiddestroyItem(ViewGroup container, intposition,Object object) {

    ((ViewPager)container).removeView(mView.get(position));

    }

    }

    这样引导页几个页面可以实现左右滑动了,但是对于最后一个页面出现“进入主页”按钮,前面n-1个页面出现“跳过”按钮,以及下方的小圆点的颜色,需要通过滑动监听

    gViewPager.addOnPageChangeListener(newViewPager.OnPageChangeListener() {

    onPageSelected(int position){

    switch(position) {

    case0:

    setPointImg(true, false, false);//控制下方小圆点的颜色

    tv_skip_to_homepage.setVisibility(View.VISIBLE);//跳过 按钮可见

    break;

    case1:

    setPointImg(false, true, false);

    tv_skip_to_homepage.setVisibility(View.VISIBLE);

    break;

    case2:

    setPointImg(false, false, true);

    tv_skip_to_homepage.setVisibility(View.GONE);

    break;

    }

    }

    然后通过监听两个按钮的点击状态,选择进入合适的页面

    相关文章

      网友评论

          本文标题:首页、闪屏页、引导页相关

          本文链接:https://www.haomeiwen.com/subject/whwoyxtx.html