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

Gio*_*olo 8 client android developer-tools android-studio

我正在使用android studio编写应用程序.我想知道以哪种方式我可以做一个教程,用户只会在第一次使用该应用时看到.图像或屏幕截图等教程

有人能帮我吗?谢谢

her*_*ell 6

您可以随时编写自己的解决方案,但是,让我们不要重新发明轮子.

检查此Android库:

导游资料库

它允许您在屏幕中添加指针,因此用户知道他接下来应该触摸的位置.

它非常易于使用,您只需要指向您希望用户触摸的元素.

来自doc:

假设您有一个这样的按钮,您希望用户点击:

Button button = (Button)findViewById(R.id.button);
Run Code Online (Sandbox Code Playgroud)

您可以通过以下方式在其上添加教程指针:

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);
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!


noa*_*got 5

我在寻找仅在第一次运行教程的解决方案时遇到了该线程(如rbaleksandar建议),因此,如果有一天对某人有所帮助,这是一个适用于我的解决方案模板(使用SharedPreferencesAPI) :

@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();
        }
    }
Run Code Online (Sandbox Code Playgroud)

编辑-奖金 -如果您正在学习应用程序教程-我现在正把ShowcaseView库弄乱了(太好了-试试看)。显然,使用称为的方法,该问题有一些捷径singleShot(long)-其输入是的键SharedPreferences,并且它执行的操作完全相同-仅在首次激活时运行。用法示例(从此处获取):

@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();
    }
Run Code Online (Sandbox Code Playgroud)

  • 这些都是绝妙的解决方案!非常感谢! (2认同)