Je souhaite créer des superpositions d'aide comme celles que vous voyez lorsque ICS se charge pour la première fois ou dans des applications comme ES File Explorer ou Apex Launcher (il y en a plus, mais je ne peux pas y penser pour le moment). S'agit-il simplement d'une disposition relative avec une vue superposée? Je n'ai pas pu trouver d'exemple de code pour faire une telle chose. Quelqu'un sait comment cela se fait ou a des idées?
ViewGroup
pour la couche «marques de coach» pourrait gérer cela, et il existe des bibliothèques (par exempleShowcaseView
) qui offrent des implémentations prédéfinies de ce modèle."Coach mark" est "Help overlay" dans UX talk :-)
coach_mark.xml est la mise en page de votre marque de coach
coach_mark_master_view est l'identifiant de la vue la plus haute (racine) dans coach_mark.xml
Ajout d'un échantillon de coach_mark.xml (à cette excellente solution fournie par Oded Breiner), il est donc facile pour les personnes de copier et coller pour voir rapidement l'exemple de travail.
Exemple de coach_mark.xml ici, changez le -> drawable / coach_marks en votre image:
coach_mark.xml
Et utilisez éventuellement ce thème pour supprimer le remplissage:
la source
A dialog is a small window that prompts [...]. A dialog does not fill the screen and is normally used for modal events [...].
,. Si j'utilise ce code, j'obtiens ma vue principale compressée dans une petite partie de l'écran. Si je règleandroid:layout_width="640dp" android:layout_height="480dp"
(c'est-à-dire les valeurs réelles de l'écran avec lequel je teste), cela fonctionne correctement. (bien sûr, ce n'est pas une solution réalisable)new Dialog(getContext(), R.style.WalkthroughTheme);
Vous pouvez le faire assez rapidement. Vous ajoutez, par exemple, un LinearLayout où vous mettez une image avec alpha qui correspondent à vos informations d'aide et que voulez-vous dessiner comme une superposition. Dans votre xml de votre activité, vous mettez cette mise en page dans un RelativeLayout après la mise en page de votre activité avec la visibilité Gone. Lorsque vous souhaitez dessiner les informations d'aide, il vous suffit de définir cette visibilité sur visible.
J'espère, je suis clair, si vous avez des questions, je serai heureux d'y répondre.
la source
Voir mon autre réponse comment afficher par programme une disposition de superposition au-dessus de l'activité actuelle. Le fichier layout.xml de l'activité n'a pas besoin de connaître le skin de superposition. Vous pouvez mettre une superposition semi-transparente, ne couvrir qu'une partie de l'écran, une ou plusieurs vues de texte et des boutons dessus ... Comment superposer un bouton par programmation?
Mon objectif était que les activités principales ne connaissent pas de skin de superposition, les superpositions vont et viennent, de nombreuses superpositions différentes, toujours capables d'utiliser des fichiers texte overlay1.xml comme modèle et le contenu doit être mis à jour par programme. Je fais à peu près ce que CommonsWare nous a dit, mon message montre le code du programme réel pour commencer.
avertissement: OP "Merci pour votre contribution. C'est ainsi que j'ai imaginé que cela se faisait. Je dois donner crédit à la réponse ci-dessous" Le commentaire ne signifie pas ma réponse mais la réponse de CommonsWare. Stackoverflow a modifié l'ordre des publications.
la source