Android开发--实现Android引导页

这篇具有很好参考价值的文章主要介绍了Android开发--实现Android引导页。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Android开发--实现Android引导页

几乎每个app都有引导页,下面我们来做一个引导页的实现。

引导页,是指软件首次进入或者更新完成后,软件显示的页面,一般展示软件特色功能或者更新的内容。

先判断是否第一次启动app,如果是,则进入引导页(左右滑动切换查看,滑动到最后一页点击按钮进入首页)。

如果不是,则直接进入首页

下面我们用代码来实现这个功能:

1、打开Android Studio,新建一个项目StartApp,新建一个空activity,命名为StartActivity

StartActivity.java代码如下。

public class StartActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_start);
        initView();
    }

    private void initView() {
        SharedPreferences sp=getSharedPreferences("name",MODE_PRIVATE);
        boolean is=sp.getBoolean("ok",true);
        //判断是否为第一次打开软件
        if (is){
            SharedPreferences.Editor editor=sp.edit();
            editor.putBoolean("ok",false);
            editor.apply();
            //跳转到引导页
            startActivity(new Intent(StartActivity.this,IntroductoryActivity.class));
            finish();
        }else {
            //直接进入首页
            startActivity(new Intent(StartActivity.this,MainActivity.class));
            finish();
        }

    }
}
IntroductoryActivity会报红,不用担心,是因为目前还没有新建该activity,第三步新建好,这里就不会报红了。

2、在AndroidManifest.xml文件中,将启动页面设置为.StartActivity。就是把<intent-filter>里面的代码放在StartActivity下面。如图所示:

Android开发--实现Android引导页

3、新建一个activity页面,命名为IntroducttoryActivity

在IntroducttoryActivity.xml中代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".IntroductoryActivity">
    <androidx.viewpager.widget.ViewPager
        android:id="@+id/introductory_viewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</LinearLayout>

4、新建4个引导页。这里就不需要新建空Activity了,按照下面图片的步骤新建。

Android开发--实现Android引导页

新建下面4个xml文件

 Android开发--实现Android引导页

  每个xml文件,只需要添加下面一行代码,该行代码是为该页面添加背景图片,每个xml文件的图片不同。(将图片放在drawable文件夹下面,这里就可以调用)。具体代码如下:

introductory_a.xml

Android开发--实现Android引导页

introductory_b.xml

Android开发--实现Android引导页 introductory_c.xml

Android开发--实现Android引导页 introductory_d.xml

 Android开发--实现Android引导页

5、新建一个类,命名为IntroductoryAdapter.java,用作适配器,并继承PagerAdapter。

代码如下:

public class IntroductoryAdapter extends PagerAdapter {
    private List<View>list;

    public IntroductoryAdapter(List<View> list) {
        this.list = list;
    }


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

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

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        View view=list.get(position);
        container.addView(view);
        return view;
    }

    @Override
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        container.removeView(list.get(position));
    }
}

6、接下来回到IntroductoryActivity.java页面,添加适配器,初始化viewPager和4个引导页,并设置第4个引导页的Button按钮的点击事件。代码如下:

public class IntroductoryActivity extends AppCompatActivity {
    private ViewPager mViewPage;
    private Button mButton;
    private List<View> viewList;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //隐藏标题栏
        getSupportActionBar().hide();
        setContentView(R.layout.activity_introductory);
        initView();
        initAdapter();
        initStart();
    }
    /**
     * 设置第4个引导页的textView文本的点击事件
     */
    private void initStart() {
        mButton=viewList.get(3).findViewById(R.id.btn_open);
        mButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(IntroductoryActivity.this,MainActivity.class));
                IntroductoryActivity.this.finish();
            }
        });
    }
    /**
     * 适配器
     */
    private void initAdapter() {
        IntroductoryAdapter adapter=new IntroductoryAdapter(viewList);
        mViewPage.setAdapter(adapter);
    }

    /**
     * viewPager和4个引导
     */
    private void initView() {
        mViewPage=findViewById(R.id.introductory_viewPager);
        viewList=new ArrayList<>();
        viewList.add(getView(R.layout.introductory_a));
        viewList.add(getView(R.layout.introductory_b));
        viewList.add(getView(R.layout.introductory_c));
        viewList.add(getView(R.layout.introductory_d));
    }

    private View getView(int resId) {
        return LayoutInflater.from(this).inflate(resId,null);
    }
}

7、实现效果:

在app安装后第一次进入的时候,会进入引导页。 Android开发--实现Android引导页

 

 到这里,你已经实现了引导页的基本功能,接下来可以根据需要,去为引导页添加背景图片和布局等等。加油!

源码文件:

链接: https://pan.baidu.com/s/1WdYh2YqNbWjlk30ScuF9Yg 提取码: yphc 复制这段内容后打开百度网盘手机App,操作更方便哦

有什么不懂的地方,欢迎评论区讨论。文章来源地址https://www.toymoban.com/news/detail-478905.html

到了这里,关于Android开发--实现Android引导页的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [Android]引导页

    使用Kotlin + Jetpack Compose创建一个左右滑动的引导页, 效果如图. androidx.compose.ui 最新版本查询: https://maven.google.com/web/index.html com.google.accompanist:accompanist-pager 最新版本查询: https://central.sonatype.com/ 确保在  build.gradle  (Module: app) 文件中添加: HorizontalPager  是一个实现水平滑动页面

    2024年04月23日
    浏览(39)
  • Android LinearLayout快速设置每个item间隔

    原文地址: Android LinearLayout快速设置每个item间隔 平常使用LinearLayout的时候,有时候会需要对每个item设置间距,但是每个item都加上margin的方法实在有些繁琐 因为之前是在写JavaFx程序,里面的Vbox或Hbox都会提供一个Space的参数,可以用来快速设置每个item之间的间距 而Android这边,是没看

    2024年02月17日
    浏览(45)
  • 想用 Python 写游戏,都有哪些好用的游戏开发库?

    虽然 Python 在网络爬虫、人工智能、数据分析方面有广泛应用,但它并不是一门专门做游戏开发的编程语言,不过对于小型的游戏开发,Python 还是挺香的。下面为大家介绍几个支持 Python 的 2D、3D 游戏开发库,使用它们,你可以设计出很多有意思的小游戏! Cocos2d 是一系列开

    2024年02月12日
    浏览(30)
  • 为何每个开发者都在谈论Go?

    本文深入探讨了Go语言的多个关键方面,从其简洁的语法、强大的并发支持到出色的性能优势,进一步解析了Go在云原生领域的显著应用和广泛的跨平台支持。文章结构严谨,逐一分析了Go语言在现代软件开发中所占据的重要地位和其背后的技术原理。 关注TechLeadCloud,分享互

    2024年02月10日
    浏览(80)
  • 变了!每个做应用开发的都该看看

    1 、前言 前几天,在经历了一个月的推迟后, OpenAI 在周三正式推出了 GPT Store 。借助这一在线商店, OpenAI 用户可以分享定制版 ChatGPT 聊天机器人。 很多人说: GPT Store 的推出,意味着 OpenAI 正式迎来它的 iPhone 时刻。 李彦宏去年年底在极客大会上发表了很多对于 AI 和大模型

    2024年01月20日
    浏览(35)
  • 每个.NET开发都应该知道的10个.NET库

    有个.NET面试官反馈面试了一个小白,问他用过哪些.NET库,结果只回答上了几个。作为一个.NET开发者,了解一些常用的.NET库是非常重要的。本文将介绍.NET开发人员应该了解的10个常用.NET库,这些库可以帮助开发人员提高开发效率、简化开发流程,开发出优秀的.NET应用程序。

    2024年02月06日
    浏览(38)
  • 【必看】每个开发人员都应该知道的 10 个 GitHub 库

    所有这些都将为你增加价值,并帮助你成为更好的 Web 或软件开发人员,或同时成为两者。 10 个 GitHub 仓库 ================================================================================= 1. Free Programming Books GitHub🌟:183K + 提供各种不同语言的 Free Programming Books 无疑是 GitHub 上最受欢迎和好评度

    2024年04月18日
    浏览(44)
  • 重要!每个开发者都应该掌握的9个核心算法

    许多开发者似乎都有一个很大的误解,认为算法在编程工作中没什么用处,只是工作面试中的加分项。其实并不是这样的,成为一名有秀的开发者,极其重要的是具备算法思维能力。不仅能够复制和修改标准算法,还能够使用代码运用算法解决遇到的任何问题。 这里介绍9种

    2024年02月11日
    浏览(38)
  • Android Glide自定义AppCompatImageView切分成若干小格子,每个小格子onDraw绘制Bitmap,Kotlin(1)

      垂直方向的RecyclerView,每行一个AppCompatImageView,每个AppCompatImageView被均匀切割成n个小格子, 每个小格子通过Glide加载出来Bitmap,然后onDraw绘制整行。             上面每一行加载16个bitmap绘图,速度很快,因为是canvas直接绘图。但是,如果使用下文的方式: Android LinearLa

    2024年02月04日
    浏览(40)
  • 每个.NET开发都应掌握的linq知识点

    LINQ是C#3.0引入的特性,让处理对象就像执行SQL语句一样简单,对于提高C#开发效率有革命性的作用。 对于每个.NET开发者来说,掌握C#的LINQ知识点是非常重要的。LINQ是C#的一个强大的特性,它为数据查询和操作提供了简洁、统一的语法,使得数据处理变得更加直观和灵活。 以

    2024年02月14日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包