Je voudrais produire une interface utilisateur android
qui permet à l'utilisateur de déplacer components
/widgets
ajouté autour de l'écran en les sélectionnant puis en les faisant glisser. Est-ce possible en utilisant l'apis Android standard?Est-il possible de déplacer des composants autour de l'écran en utilisant les apis Android standard?
Est-il possible de déplacer des composants autour de l'écran en utilisant les apis Android standard?
Répondre
Oui. Cela dépend de ce que vous essayez d'accomplir.
Il peut être fait en utilisant les API standard, mais cette fonctionnalité n'est pas partie de les APIs standard. Autrement dit, il n'y a pas de méthode widget.DragOverHere()
à moins d'en écrire une. Cela dit, cela ne serait pas très compliqué à faire. Au minimum, vous devez écrire une sous-classe personnalisée de View et implémenter deux méthodes: onDraw(Canvas c)
et onTouch(MotionEvent e)
. Une esquisse:
class MyView extends View {
int x, y; //the x-y coordinates of the icon (top-left corner)
Bitmap bitmap; //the icon you are dragging around
onDraw(Canvas c) {
canvas.drawBitmap(x, y, bitmap);
}
onTouch(MotionEvent e) {
switch(e.getAction()) {
case MotionEvent.ACTION_DOWN:
//maybe use a different bitmap to indicate 'selected'
break;
case MotionEvent.ACTION_MOVE:
x = (int)e.getX();
y = (int)e.getY();
break;
case MotionEvent.ACTION_UP:
//switch back to 'unselected' bitmap
break;
}
invalidate(); //redraw the view
}
}
Dans une certaine mesure. Cela dépend du degré de liberté que vous voulez donner à l'utilisateur. Une solution qui vient à l'esprit est un TableLayout avec des cellules prédéfinies. Un utilisateur peut alors appuyer et faire glisser des composants. Lorsque vous faites glisser un composant, vous voulez simplement en dessiner une image sous le doigt de l'utilisateur, mais lors de leur publication, supprimez le composant de son précédent parent et ajoutez-le au nouveau parent en utilisant les méthodes d'ajout/suppression de ViewGroup.
Bien que vous puissiez déplacer des vues par programme, il serait difficile/impossible de changer de mise en page à la volée aussi loin que je peux voir.
La façon dont je l'ai fait est d'avoir une mise en page absolue, puis simplement mettre à jour la position de l'objet comme il est traîné. Vous devez mettre en œuvre en vous traînant. Si les widgets ont un ordre naturel (une barre d'outils où vous pouvez faire glisser les boutons), vous pouvez empiler une mise en page absolue en haut de la barre d'outils et lorsque le glissement commence, vous l'ajoutez à la mise en page absolue et vous l'ajoutez à la disposition d'origine dans la nouvelle position.
- 1. Comment dimensionner les composants Android en fonction de la taille de l'image en utilisant XML
- 2. Android OpenGL ES manque des composants?
- 3. Ajout de composants flex en utilisant xml
- 4. se déplacer autour des fichiers téléchargés dans PHP
- 5. clonage de composants ExtJS en utilisant JQuery
- 6. Est-il possible de pirater standard
- 7. Symfony: Est-il possible de définir SetTemplate pour les composants?
- 8. Composants d'application Android - un mot de conseil nécessaire
- 9. Existe-t-il des raccourcis standard sur Android?
- 10. Est-il possible pour jQuery de lire les paramètres CSS AVANT de créer des composants html?
- 11. Est-il possible de dériver automatiquement les composants d'une clé cache dans des rails?
- 12. Comment déplacer des fichiers multiples en utilisant SHFILEOPSTRUCT?
- 13. Comment faire pour déplacer les services de composants vers un nouveau serveur?
- 14. Se déplacer en utilisant le positionnement absolu
- 15. déplacer fichier zip en utilisant fichier.copy()
- 16. affichant des entiers dans android en utilisant sqlite
- 17. Supprimer les espaces unnessesary de Composants Balançoires
- 18. Android - Est-il possible de désactiver par programme certaines fonctionnalités?
- 19. déplacer un curseur de style: déplacer
- 20. Accélérer les chargements de pages en utilisant des API externes
- 21. Analyse de l'URL dans les composants
- 22. Est-il possible d'exécuter des composants OSGi dans Weblogic 10.3?
- 23. Accès refusé en essayant de déplacer des fichiers avec xp_cmdshell
- 24. Déplacer les éléments expirés?
- 25. Comment déplacer les détails de l'environnement en dehors de l'EAR
- 26. Ce qui a fait la plupart des sites de codage de conversion standard "en non standard « ?
- 27. est-il possible de concatuer des arguments à une ligne de commande en utilisant des backquotes?
- 28. adf - Comment modifier les composants de l'arbre?
- 29. Bibliothèques de wrappers autour des API J2ME
- 30. mise en cache des données WebView (Android)