Comment détecter quand un drawable est touché
Question
Je travaille sur une application qui a une toile avec un tas de petites images que l'utilisateur peut faire glisser autour, et une « boîte » que l'utilisateur traînera de créer de nouveaux objets d'image ou faire glisser une image existante à ce et il le supprime.
Quelle est la meilleure façon de détecter si l'utilisateur a touché une zone ou une image sur l'écran? La première chose qui vient à l'esprit est évidemment compare les coordonnées de contact avec les coordonnées de chaque objet, mais qui semble un peu lourd. Y at-il un meilleur, ou construit de manière?
Merci
La solution
// Get a reference to the view from xml (or if you
// have created it dynamically, just use that)
View imageView = findViewById(R.id.my_view);
imageView.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
// Do stuff with view (the View v that is passed is the View that was touched)
doStuff(v);
}
});
Autres conseils
Cela dépend de la complexité de votre interface est, mais, fondamentalement, si vous substituez onTouchEvent
que vous obtiendrez les coordonnées que vous parlez.
Afin de trouver ce qui a été touché, sans passer par tous les objets, vous pouvez trouver des moyens de simplifier cela, par exemple en se divisant votre écran en peut-être 8 grilles, et de savoir qui grille (s) chaque objet est, de sorte que lorsque vous touchez l'écran, vous pouvez trouver les objets qui peuvent être dans cette grille, et donc vous aurez moins d'éléments à regarder à travers.
Pour une brève réponse sur la façon d'utiliser onTouchEvent
vous pouvez regarder:
http://androidforums.com/android- Jeux / 210019-touch-événement-image-en-canvas.html