So implementieren Sie ein Erststart-Tutorial wie Android Lollipop-Apps: Wie Sheets, Slides-App?
Lesezeit: 5 Minuten
Abhishek Balani
Ich habe Android 5.0 Final Build in meinem Nexus 5 geflasht. Mir ist aufgefallen, dass es eine sehr schöne, saubere und elegante Art hat, das Tutorial beim ersten Start zu zeigen. Apps wie „Sheets“, „Slides“ etc.
Wie können wir das in unseren Android L-kompatiblen Apps implementieren?
Außerdem blendet die App den ersten Startbildschirm aus und zeigt dann das Tutorial.
Ich bin mir ziemlich sicher, dass dies nicht Teil des öffentlichen Rahmens ist. Du musst es wahrscheinlich selbst implementieren.
Ich denke, es ist das Beste, was es gibt. Wenn nicht, können Sie etwas anderes vorschlagen?
– Magesh Kumaar
27. Dezember 2015 um 6:48 Uhr
MathieuMaree
Zunächst einmal gibt es kein Geheimnis. Die Qualität der Illustrationen ist der Schlüssel zu diesem schönen Ergebnis. Wenn Sie also nicht selbst Designer sind, müssen Sie einen guten Designer für sie finden.
Abgesehen davon sehe ich mehrere Möglichkeiten, dem näher zu kommen.
Erstens gibt es einen sehr subtilen Parallaxeneffekt auf den Illustrationen. Sie können es erreichen, indem Sie verwenden das Wesentliche dieser ParallaxTransformPage. Ich benutze es und es funktioniert ziemlich gut.
Für die Ausblendungsanimation des Splashscreens können Sie Folgendes tun:
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);
Folgen Sie der Antwort von linkas für die Verwendung von a ViewPagerIndicator und wie das Tutorial nur gestartet wird, wenn der Benutzer die App zum ersten Mal startet.
Das sieht nah aus. Vielen Dank. Ich werde es umsetzen und Bescheid geben.
– Abhishek Balani
17. November 2014 um 14:14 Uhr
Wissen Sie auch, wie Sie die Aktivität beenden (mit ausgeblendeter Animation), wenn der Benutzer versucht, auf der letzten Seite außerhalb der Grenzen zu wischen (nach links (vorwärts) wischen), genau wie in der Google Sheets-App? Das und das hängt zusammen.
– Benutzer1480019
23. Dezember 2014 um 11:27 Uhr
@GerritHoekstra Was Sie tun könnten, ist einfach Ihre ViewPager im selben Layout wie Ihr Homescreen (über dem Rest des Homescreens) und zeigen/aufblasen die ViewPager nur beim ersten Start. Sie fügen eine 5. “gefälschte” leere Seite zu Ihrer hinzu ViewPager. Und während der Benutzer auf die 5. Seite wischt, ändern Sie die ViewPager‘s Alpha, bis Sie schließlich seine Sichtbarkeit auf GONE setzen, wenn der Benutzer seinen Finger loslässt.
– MathieuMaree
23. Dezember 2014 um 13:10 Uhr
@MathieuMaree Danke! Das habe ich erfolgreich umgesetzt, jetzt geht es nur noch darum, die Fake-Ansicht vor dem zu verbergen CirclePageIndicator Denn wenn ich zum Beispiel 4 Ansichten und 1 gefälschte Ansicht habe, werden 5 Kreise anstelle von 4 angezeigt (was ich möchte), wissen Sie, wie Sie das beheben können?
– Benutzer1480019
23. Dezember 2014 um 14:16 Uhr
@MathieuMaree Macht nichts, ich habe das geändert CirclePageIndicator um nur 4 Kreise anzuzeigen. Außerdem habe ich meine Aktivität wie hier beschrieben transparent gemacht, damit ich das ‘Tutorial-Layout’ nicht in das gleiche Layout wie meinen Homescreen stellen muss. Das Berechnen und Ändern des Alpha geschieht in onPageScrolled mit dem zweiten Argument (positionOffset). Danke für Ihre Hilfe! Sehr geschätzt.
Diese Android-Bibliothek demonstriert ein Material-Intro-Tutorial, ähnlich wie in Google Sheets, wie Sie bereits erwähnt haben.
Außerdem übernimmt diese Bibliothek die für jede Seite eingestellte Hintergrundfarbe und beim Scrollen zwischen den beiden Seiten werden die beiden Farben ineinander übergehen
Hier sind ein paar weitere Intro-Gits, die dir helfen können:
Es erstellt mit diesen Kreisen einen Lollipop-ähnlichen ViewPager. Formatieren Sie das Layout einfach so, dass es für Ihre App geeignet ist, und dann sollte es Ihnen gut gehen. Es enthält keine Animation, aber ich denke, es ist ein Anfang.
Sie können ViewPagerIndicator hier verwenden: http://viewpagerindicator.com/#download. Dann sollten Sie SharedPreferences definieren, um diesen ViewPager nur einmal anzuzeigen. Du kannst schreiben:
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);
}
}
}
Wenn Sie keine Bibliothek verwenden möchten, ist es ziemlich einfach. Früher habe ich eine Bibliothek verwendet, aber ich habe angefangen, eine benutzerdefinierte Version zu implementieren. Alles, was Sie tun müssen, ist eine Ansicht mit Registerkarten und einen Pager anzuzeigen. Gestalten Sie dann alle diese Seiten im Tutorial als Fragmente. Diese Fragmente können beliebige Schaltflächen an beliebigen Positionen und unterschiedlichen Stilen haben, da Sie jedes Fragment selbst implementieren. Und es ist nicht schwierig. Verwenden Sie am Ende einfach gemeinsame Einstellungen, um zu überprüfen, ob es sich um den ersten Lauf handelt. Wenn es wie die Aktivität ist, die alle Fragmente hat. Anderenfalls wird diese Aktivität nicht angezeigt.
Wenn Sie keine externe Bibliothek verwenden möchten, sollten Sie sich unbedingt dieses Tutorial ansehen: stackoverflow.com/questions/26954217/…
– Mussa
16. Oktober 2018 um 13:40 Uhr
11446600cookie-checkSo implementieren Sie ein Erststart-Tutorial wie Android Lollipop-Apps: Wie Sheets, Slides-App?yes
Ich bin mir ziemlich sicher, dass dies nicht Teil des öffentlichen Rahmens ist. Du musst es wahrscheinlich selbst implementieren.
– Alex Lockwood
17. November 2014 um 3:10 Uhr