第一次进入应用程序的教程?

Tutorial first time you enter into an app?

我正在使用 android studio 编写应用程序。我想知道我可以用哪种方式制作用户只会在第一次使用该应用程序时看到的教程。图片或屏幕截图之类的教程

有人可以帮助我吗?谢谢

您始终可以编写自己的解决方案,但是,我们不要重新发明轮子。

检查这个 Android 图书馆:

Tour Guide Repository

它允许您在屏幕上添加指针,因此用户知道下一步应该触摸哪里。

使用起来非常简单,您只需指向您希望用户触摸的元素即可。

来自文档:

Let's say you have a button like this where you want user to click on:

Button button = (Button)findViewById(R.id.button);

You can add the tutorial pointer on top of it by:

TourGuide mTourGuideHandler = TourGuide.init(this).with(TourGuide.Technique.Click)
        .setPointer(new Pointer())
        .setToolTip(new ToolTip().setTitle("Welcome!").setDescription("Click on Get Started to begin..."))
        .setOverlay(new Overlay())
        .playOn(button);

希望对您有所帮助!

用于创建介绍 and/or 教程屏幕的库的一些链接。

像Google这样的横向卡片现在: https://github.com/PaoloRotolo/AppIntro

教程画面: https://github.com/amlcurran/ShowcaseView

据我了解,问题不是 如何创建教程?(正如已经发布答案的人得出的结论),而是 如何仅在首次启动时显示教程?。所以这是我对这个话题的两分钱:

我不熟悉您的 Android 应用程序如何存储其配置数据,但我假设它在数据库 (SQLite) 或文本文件(纯文本、YAML、XML - 任何)。将配置条目添加到应用程序设置的存储位置 - 类似于 tutorial_on : falsetutorial_on : 1 等,具体取决于配置的表示格式。

配置的工作方式是,无论何时启动应用程序(或一般软件),都必须在应用程序本身中加载它。因此,将以下内容添加到您的应用程序中(在哪里以及如何取决于您和您的应用程序设计):

  1. 检查tutorial_on条目
  2. 如果tutorial_on设置为true/1随便

    2.1展示教程

    2.2 将 tutorial_on 更改为 false/0 随便什么

    2.3 将结果存储在您的配置中

  3. 继续使用该应用程序

通过这样做,您的应用程序第一次启动时,负责显示教程的标志将被切换,之后每次您启动应用程序时,切换标志将被读取,从而导致忽略教程。

我个人建议您使用类似于 Don't show tutorial anymore 的选项以及如何重新启用它的说明(通过触发该应用程序菜单中的某些操作等)。这有两个主要好处:

  • 改善了用户体验 - 用户喜欢拥有控制权(尤其是在一些琐碎的事情上,例如显示或隐藏教程)。每当您将控制权从他们手中夺走时,他们就会生气。
  • 让您的用户重新学习忘记的东西 - 一般的经验法则是创建不应让用户因为要记住很多东西而造成负担的应用程序。这就是为什么事情应该是不言自明的。但有时您可能仍想这样做。通过增加用户重新启动的可能性(通过简单地重置 tutorial_on 标志并重复上面的步骤)本教程允许这样做 - 刷新用户的记忆。

我在第一次寻找 运行 教程的解决方案时遇到了这个线程(正如 rbaleksandar 建议的那样),所以如果有一天它对某人有帮助,这里有一个适合我的解决方案模板(使用 SharedPreferences API):

@Override
    protected void onResume() {
        super.onResume();
        String tutorialKey = "SOME_KEY";
        Boolean firstTime = getPreferences(MODE_PRIVATE).getBoolean(tutorialKey, true);
        if (firstTime) {
            runTutorial(); // here you do what you want to do - an activity tutorial in my case
            getPreferences(MODE_PRIVATE).edit().putBoolean(tutorialKey, false).apply();
        }
    }

编辑 - 奖金 - 如果你喜欢应用程序教程 - 我现在正在搞乱 ShowcaseView library (which is amazing - try it out). Apparently they have some shortcut for that issue using a method called singleShot(long) - its input is a key for the SharedPreferences, and it does the exact same thing - runs only in the first activation. Example of usage (taken from here):

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

        Target viewTarget = new ViewTarget(R.id.button, this);
        new ShowcaseView.Builder(this)
                .setTarget(viewTarget)
                .setContentTitle(R.string.title_single_shot)
                .setContentText(R.string.R_string_desc_single_shot)
                .singleShot(42)
                .build();
    }