如何实现像Android棒棒糖应用程序这样的首次发布教程:比如床单、幻灯片应用程序?

如何实现像Android棒棒糖应用程序这样的首次发布教程:比如床单、幻灯片应用程序?,android,android-5.0-lollipop,Android,Android 5.0 Lollipop,我的Nexus5中闪现了Android 5.0最终版本。我注意到它在第一次发布时以非常漂亮、干净和优雅的方式显示教程。“工作表”、“幻灯片”等应用程序 我们如何在Android L兼容的应用程序中实现这一点 此外,该应用程序在第一次启动屏幕上淡出,然后显示教程 您可以在此处使用ViewPagerIndicator:。然后,您应该定义SharedReferences,以便只显示一次ViewPager。你可以写: public class MainActivity extends Activity

我的Nexus5中闪现了Android 5.0最终版本。我注意到它在第一次发布时以非常漂亮、干净和优雅的方式显示教程。“工作表”、“幻灯片”等应用程序

我们如何在Android L兼容的应用程序中实现这一点

此外,该应用程序在第一次启动屏幕上淡出,然后显示教程


您可以在此处使用ViewPagerIndicator:。然后,您应该定义SharedReferences,以便只显示一次ViewPager。你可以写:

public class MainActivity extends Activity {
    public static final String MyPrefs = "MyPrefs";
    ...

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

        SharedPreferences sp = getSharedPreferences(MyPrefs, Context.MODE_PRIVATE);
        if (!sp.getBoolean("first", false)) {
            SharedPreferences.Editor editor = sp.edit();
            editor.putBoolean("first", true);
            editor.commit();
            Intent intent = new Intent(this, SampleCirclesDefault.class); //call your ViewPager class
            startActivity(intent);
        }
    }
}

也许你想使用一种罗马努里克的解决方案:

首先,没有秘密。插图的质量是获得这个漂亮结果的关键。所以除非你自己是设计师,否则你必须为他们找到一个好的设计师

显然,我可以看到几种接近这一点的方法

  • 首先,插图上有一个非常微妙的视差效果。您可以通过使用来实现它。我使用它,它工作得很好

  • 另外,在切换页面时

  • 对于splashscreen淡出动画,可以执行以下操作:

    final ImageView launchScreen = (ImageView) context.findViewById(R.id.launch_screen_view);
    new Handler().postDelayed(new Runnable()
    {
        @Override
        public void run()
        {
            Animation animation = AnimationUtils.loadAnimation(context, android.R.anim.fade_out);
            animation.setAnimationListener(new Animation.AnimationListener()
            {
                // ...
    
                @Override
                public void onAnimationEnd(Animation animation)
                {
                    launchScreen.setVisibility(View.GONE);
                }
            });
            launchScreen.startAnimation(animation);
        }
    }, 2000);
    
  • 下面介绍如何使用
    ViewPagerIndicator
    ,以及如何仅在用户首次启动应用程序时启动教程


  • 我在这里找到了这个图书馆:


    它用这些圆圈创建了一个类似棒棒糖的ViewPager。只需格式化布局,使其适合您的应用程序,然后您就可以了。它不包含动画,但我认为这是一个开始

    有一个很好的库可以模拟这些首次运行的教程:


    单击此处查看大图

    此git将帮助您实现所需: ,

    正如您所提到的,这个android库演示了一个与Google Sheets上的教程非常相似的材料介绍教程

    此外,该库为每个页面设置背景色,当在两个页面之间滚动时,两种颜色将相互淡入

    下面是一些可以帮助您解决问题的介绍:


  • 如果您不想使用库,它非常简单。我以前使用过一个库,但我开始实现一个自定义版本。您所要做的就是使用选项卡式视图和视图寻呼机。然后将教程中的所有这些页面设计为片段。这些片段可以有任何按钮,在任何位置,以及您喜欢的不同样式,因为每个片段都是您自己实现的。这并不难。最后,只需使用共享首选项,检查它是否是第一次运行。如果它是如何活动的,其中有所有的片段。否则不要显示该活动。

    我很确定这不是公共框架的一部分。您可能需要自己实现它。这看起来很接近。谢谢我将实施并让您知道。您是否也知道,当用户试图像Google Sheets应用程序一样在最后一页上刷出边界(向左(向前)刷)时,如何完成活动(使用淡出动画)?与之相关。@GerritHoekstra您所能做的只是将您的
    ViewPager
    置于主屏幕的同一布局中(位于主屏幕的其余部分之上),并仅在第一次启动时显示/充气
    ViewPager
    。您将第五个“假”空页面添加到您的
    ViewPager
    。当用户滑动到第5页时,您可以更改
    ViewPager
    的alpha,直到用户松开手指时,您最终将其可见性设置为“消失”。@Mathieumare谢谢!我已经实现了成功,现在唯一的事情是如何从
    CirclePageIndicator
    隐藏假视图,因为当我有4个视图和1个假视图时,它显示5个圆而不是4个圆(我想要),你知道如何修复吗?@Mathieumare不介意,我已将
    CirclePageIndicator
    更改为仅显示4个圆圈。此外,我还将我的活动透明化,这样我就不必将“教程布局”与主屏幕的布局相同。使用第二个参数(
    positionOffset
    )计算和更改alpha发生在
    onPageScrolled
    中。谢谢你的帮助!非常感谢。我认为这是最好的。如果不是,你能建议点别的吗?这些看起来真的很棒!如果您不想使用外部库,您肯定应该看看本教程: