2011-08-15 3 views
1

Quelqu'un peut-il faire la lumière sur la façon dont je peux ajouter une forme (par exemple un rectangle ou une flèche) sur une image (en ImageView)? Une fois ajoutée, la forme devra pouvoir être déplacée n'importe où dans l'image. Et enfin besoin de sauvegarder l'image éditée (avec la forme au-dessus de cela).Android-Ajouter forme dragable sur une image

merci les gars

Répondre

0

De quelles informations avez-vous vraiment besoin?

Cela peut être quelques étapes à faire:

Peut-être créer un nouvel objet pour gérer ceci:

  • Créer une nouvelle classe et qui vont de ImageView ou utiliser LayerDrawable pour cela.
  • Écrire des setters/getters pour l'image d'arrière-plan principale/bitmap.
  • Ajoutez votre propre forme Vector (créer une nouvelle classe avec des couleurs définissable, épaisseur ... ou coder en dur il)
  • Est-ce que tous vos dessins onDraw-Méthodes
  • implémentent des interfaces OnTouch pour gérer votre sélection et faisant glisser.
  • Créer nouvelle méthode (rendre à jpeg/png/..) pour enregistrer votre image résultante
0
  • Créer une vue personnalisée de View qui chevauche complètement votre ImageView. Cette vue aura un arrière-plan transparent et contiendra la vue draggging. Initialement mis la visibilité à invisible.
  • Dans la classe Vue personnalisée, remplacez l'événement onTouch où vous mettez à jour les marges des vues de déplacement.
  • Lors de la sauvegarde, récupérez le cache de la mise en page parente (qui contient à la fois la vue ImageView et la vue personnalisée) et utilisez-la au besoin.

Exemple de code xml:

parent disposition relative dont le cache dessin doit être saisi en utilisant rel.getDrawingCache()

<RelativeLayout .......> 
     <ImageView ......./> 
     <CustomView ......./> 
</RelativeLayout>