Ich möchte Hilfe-Overlays erstellen, wie sie beim ersten Laden von ICS oder in Apps wie ES File Explorer oder Apex Launcher angezeigt werden (es gibt noch mehr, aber ich kann mir diese derzeit nicht vorstellen). Ist dies nur ein relatives Layout, bei dem eine Ansicht über der anderen sitzt? Ich konnte keinen Beispielcode dafür finden. Weiß jemand, wie das gemacht wird oder hat er irgendwelche Ideen?
ViewGroup
für die Ebene "Coach Marks" könnte damit umgehen, und es gibt Bibliotheken (z. B.ShowcaseView
), die vordefinierte Implementierungen dieses Musters anbieten."Coach Mark" ist "Help Overlay" in UX Talk :-)
coach_mark.xml ist Ihr Coach- Markenlayout
coach_mark_master_view ist die ID der obersten Ansicht (root) in coach_mark.xml
Hinzufügen eines Beispiels von coach_mark.xml (zu dieser hervorragenden Lösung von Oded Breiner), damit ppl es einfach kopieren und einfügen kann, um schnell ein funktionierendes Beispiel zu sehen.
Beispiel für coach_mark.xml hier, ändern Sie die -> drawable / coach_marks in Ihr Bild:
coach_mark.xml
Verwenden Sie dieses Thema optional, um Polster zu entfernen:
quelle
A dialog is a small window that prompts [...]. A dialog does not fill the screen and is normally used for modal events [...].
. Wenn ich diesen Code verwende, wird meine Hauptansicht in einem kleinen Teil des Bildschirms komprimiert. Wenn ich setzeandroid:layout_width="640dp" android:layout_height="480dp"
(dh die tatsächlichen Werte des Bildschirms, mit dem ich teste), funktioniert es korrekt. (Natürlich ist dies keine praktikable Lösung)new Dialog(getContext(), R.style.WalkthroughTheme);
Sie können das ziemlich schnell tun. Sie fügen beispielsweise ein LinearLayout hinzu, in dem Sie ein Bild mit Alpha einfügen, das Ihren Hilfeinformationen entspricht und das Sie wie eine Überlagerung zeichnen möchten. In Ihrer XML-Datei Ihrer Aktivität platzieren Sie dieses Layout in einem RelativeLayout nach dem Layout Ihrer Aktivität mit der Gone-Sichtbarkeit. Wenn Sie die Hilfeinformationen zeichnen möchten, müssen Sie diese Sichtbarkeit nur auf sichtbar setzen.
Ich hoffe, ich bin klar, wenn Sie Fragen haben, bin ich bitte, sie zu beantworten.
quelle
Sehen Sie sich meine andere Antwort an, wie programmgesteuert ein Overlay-Layout über der aktuellen Aktivität angezeigt wird. Die layout.xml von Activity muss nichts über die Overlay-Skin wissen. Sie können eine halbtransparente Überlagerung einfügen, nur einen Teil des Bildschirms abdecken, eine oder mehrere Textansichten und Schaltflächen darauf ... Wie kann eine Schaltfläche programmgesteuert überlagert werden?
Mein Ziel war es, dass die Hauptaktivitäten keine Overlay-Skins kennen, Overlays kommen und gehen, viele verschiedene Overlays, weiterhin Overlay1.xml-Textdateien als Vorlage verwenden können und der Inhalt programmgesteuert aktualisiert werden sollte. Ich mache so ziemlich das, was CommonsWare uns gesagt hat. Mein Beitrag zeigt den tatsächlichen Programmcode, um loszulegen.
Haftungsausschluss: OPs "Vielen Dank für Ihre Eingabe. So habe ich mir das vorgestellt. Ich muss die Antwort unten würdigen." Kommentar bedeutet nicht meine Antwort, sondern CommonsWare-Antwort. Stackoverflow hat Nachbestellungen geändert.
quelle