J'ai une vue d'image où j'ai besoin d'avoir les deux longues pressions (pour un menu contextuel) et les presses régulières fonctionnant. Je peux faire fonctionner l'un ou l'autre, mais pas les deux. Qu'est-ce que j'ai raté? Le code ci-dessous ne fonctionne que pour les presses régulières. Dès que je touche l'écran, il commence à exécuter le code onTouch.android imageview appui long et appui régulier
ImageView image = (ImageView)findViewById(R.id.visible_image);
image.setLongClickable(true);
image.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
// disable the screen taps for 500ms
DecodeActionDownEvent(v, ev, bm2);
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_UP:
}
return true;
}
});
registerForContextMenu(image);
...
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
menu.setHeaderTitle("Edit");
ArrayList<String> menuItems = new ArrayList<String>();
menuItems.add("Edit page settings");
menuItems.add("Edit page objects");
menuItems.add("Edit this object");
for (int i = 0; i<menuItems.size(); i++) {
menu.add(Menu.NONE, i, i, menuItems.get(i));
}
}
OK, je n'avais pas essayé ça, et on dirait que ça va marcher. Pouvez-vous me dire comment obtenir les coordonnées x/y de clic/clic long à partir du View v qui est passé? – MrGibbage
Peu importe, je l'ai compris. Je dois toujours garder l'écouteur OnTouch. Merci :) – MrGibbage