Déplacer une droite d'un point à un autre
Bonjour,
Je suis actuellement en train de faire une application android qui me permet de tracer des lignes sur un plan quadrillé. J'arrive donc à dessiner ces lignes et à les selectionner. Par contre j'ai un problème au niveau du déplacement de celui ci, lorsque je selectionne une nouvelle position, je n'arrive qu'à bouger la position (x,y) de départ de ma ligne et pas la position (x,y) d'arrivée.
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
public class SelectionLigneListener implements OnTouchListener {
private Plan plan;
private Ligne ligneSelected;
public SelectionLigneListener(Plan plan) {
this.plan = plan;
}
@Override
public boolean onTouch(View v, MotionEvent event) {
v.performClick();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
onTouchDown(event);
return true;
case MotionEvent.ACTION_MOVE:
onTouchMove(event);
return true;
case MotionEvent.ACTION_UP:
onTouchUp(event);
break;
}
return false;
}
public void onTouchDown(MotionEvent event) {
if (ligneSelected != null) {
if (ligneSelected != null) {
plan.moveLigneToPosition(
ligneSelected,
(int) event.getX(),
(int) event.getY());
plan.invalidate();
}
}
}
public void onTouchMove(MotionEvent event) {
if (ligneSelected != null) {
if (ligneSelected != null) {
plan.moveLigneToPosition(
ligneSelected,
(int)event.getX(),
(int)event.getY());
plan.invalidate();
}
}
}
public void onTouchUp(MotionEvent event) {
if (ligneSelected == null) {
ligneSelected = plan.getCurrentFloor().getSelectedLigne(
(int) event.getX(), (int) event.getY());
if (ligneSelected != null) {
ligneSelected.setSelected(true);
plan.setSelectedLigne(ligneSelected);
plan.getAttachedActivity().changeToMenu(
IndoorActivity.MENU_PARAMETRAGE);
}
} else {
if (ligneSelected != null) {
ligneSelected.setSelected(false);
ligneSelected = null;
}
if (plan.getAttachedActivity() != null)
plan.getAttachedActivity().changeToMenu(
IndoorActivity.MENU_EDITION);
plan.invalidate();
}
} |