10
votes

Changer la forme de l'image dans Android

J'ai eu du succès dans la mise en œuvre d'une pincée de zoom avant / arrière et fonctionnalité de glisser / goutte dans des images sur la toile.

Maintenant ce que je veux, c'est la réinitialisation, que des images telles que le lien ci-dessous sur la base de l'application iPhone Entrez la description de l'image ici

Comment changer de forme d'une image à l'aide de l'iPhone SDK?

Alors, comment puis-je réaliser ce type de fonctionnalité dans Android?


3 commentaires

Je ne sais pas pourquoi cela est évoqué à +4 dans une minute après avoir posté. Un UPVOTER peut-il expliquer ce qui rend cette question si génial? Quoi qu'il en soit, qu'avez-vous essayé encore?


code.google.com/p/android-MultiTouch-Controller/source/brows E / ... Utilisation de ce lien J'ai avec succès pincement des images dans la toile.


@Xitij je cherche aussi ce genre de probs ..... si je me déplace, je vais vous informer sûrement .....


4 Réponses :


0
votes

Il y a deux options, les deux impliquant une vue personnalisée. Le premier consiste à créer une vue personnalisée qui remplit votre "toile". Vous pouvez garder une trace de 8 cercles bleu et 1 vert dans la vue sous forme rect . Remplacez Ontouchevent (MotionEvent) , puis vérifiez si les événements de mouvement sont dans l'une de vos commandes et les mettent à jour en conséquence (je simplifie les choses un peu ici :)). De votre Ontouchevent, vous appelleriez invalidate () . Vous êtes ONDRAW (toile) peut alors gérer le dessin des commandes et mettre à jour l'image en fonction de la modification de vos commandes depuis le dernier appel à ONDRAW.

L'autre option consiste à faire quelque chose de similaire, mais avec une vue qui n'écrasse que le cercle et les commandes, ce qui signifie que le déplacement de la vue autour de la vue nécessiterait un conteneur qui permettra à la vue de modifier ses paramètres de mise en page. Fais cela, votre méthode d'Ontouchevent devrait déclencher une invalidation de cette vue de mise en page car elle aurait besoin de recalculer la taille et la position de votre vue. Cela serait certainement plus difficile, mais en fonction de ce que vous essayez de réaliser travailler avec des vues individuelles peut être meilleur que de maintenir des représentations de vos cercles en code dans une seule vue.


0 commentaires

1
votes

Fondamentalement, vous devez invalider l'image et re-dessiner sur la toile à partir du début ::

img=(ImageView)findViewById(R.id.yourimageidfromxml);

img.onTouchEvent(MotionEvent me)
{
   int X=me.getX(); 
   int Y=me.getY();
   img.invalidate();
   img.repaint(X,Y);

}

void paint(int X,int Y)
{
  img.setWidth(X);
  img.setHeight(Y);
}


0 commentaires

0
votes

Le redimensionnement de l'image peut être obtenu en utilisant une vision d'image simple avec Scaletype "Fitxy".

Vous devez ajouter les poignées de redimensions bleues vous-même.

Modification de la rotation de l'image (vert la poignée) peut être obtenue à l'aide de: xxx

source: http://xjaphx.wordpress.com/2011/06/22/Image-processing-rotate-image-on-the-fly/

voir http://xjaphx.wordpress.com/learning/tatudials/ < / a> pour plus d'exemples de traitement d'images Android.


0 commentaires

1
votes

Si par ré-dimensionnement Vous faites référence à "étirer" le bitmap sur le plan vertical et horizontal, vous modifiez simplement la section de la forme (par exemple, ovale) est attirée. < p> Par exemple:

Ceci est votre forme d'origine d'un ovale: xxx

Ceci est le même ovale, juste étiré (redimensionné) sur l'horizontale Plan: xxx

J'espère que cela aide.


0 commentaires