Bonjour,
J'ai un problème, j'ai une application android développée en Java, je dessine une ligne grise qui représente un mur et par dessus je dessine une ligne bleu qui represente ma fenetre. l'insertion du coup est réussi maintenant mon problème c'est lors de la suppression de celle ci. La ligne gris aucun problème par contre la ligne bleu qui est sur ma ligne grise je n'arrive pas voici le code pour inserer ma ligne bleu :
et voici le code que j'utilise pour supprimer ma ligne grise et ma ligne bleu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
75
76
77
78
79
80 private void onTouchDown(MotionEvent event) { if (murSelected != null) { if (murSelected.isVertical()) { if (selection == SELECT_WINDOW) selectedWindow = murSelected.getFenetreAt( murSelected.getPosition().x, (int) event.getY()); } else { if (selection == SELECT_WINDOW) selectedWindow = murSelected.getFenetreAt( (int) event.getX(), murSelected.getPosition().y); } } if (plan.getSelectedMur() == null || (selectedWindow == null)) { /** Si on sélectionne rien on peut ajouter une fenetre **/ if (plan.getSelectedMur() == null) plan.setSelectedMur(plan.getCurrentFloor().getSelectedMur( (int) event.getX(), (int) event.getY())); /** indication de sélection du mur **/ murSelected = plan.getSelectedMur(); /** Si mur sélectionné **/ if (murSelected != null) { murSelected.setSelected(true); if (murSelected.isVertical()) { switch (plan.getEltBatToInsert()) { case Plan.FENETRE: { nvlEltF = Fenetre.FenetreVerticale("FENETRE_1", murSelected.getPosition().x, (int) event.getY(), 0); nvlEltF.setMeterThickness(nvlEltF.getPixelsThickness() / plan.getScale()); /** Largeur de la fenetre **/ nvlEltF.setMeterLength(nvlEltF.getPixelsLength() / plan.getScale()); murSelected.add(nvlEltF); selectedWindow = nvlEltF; break; } } } else { switch (plan.getEltBatToInsert()) { case Plan.FENETRE: { nvlEltF = Fenetre.FenetreHorizontale("FENETRE_", (int) event.getX(), murSelected.getPosition().y, 0); nvlEltF.setMeterLength(nvlEltF.getPixelsThickness() / plan.getScale()); nvlEltF.setMeterThickness(nvlEltF.getPixelsLength() / plan.getScale()); murSelected.add(nvlEltF); selectedWindow = nvlEltF; break; } } } } } else { if (murSelected.isVertical()) { if (selection == SELECT_WINDOW) selectedWindow = murSelected.getFenetreAt( murSelected.getPosition().x, (int) event.getY()); } else { if (selection == SELECT_WINDOW) selectedWindow = murSelected.getFenetreAt( (int) event.getX(), murSelected.getPosition().y); } } plan.invalidate(); }
c'est cet élément qui ne marche pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 public void onClick(View v) { if (v == btnSuppression) { if (plan.getSelectedMur() != null) { plan.getCurrentFloor().remove(plan.getSelectedMur()); plan.setSelectedMur(null); changeToMenu(MENU_EDITION); plan.invalidate(); }else { if (plan.getSelectedFenetre() != null) { plan.getCurrentFloor().remove( plan.getSelectedFenetre()); plan.invalidate(); /** Suppresion du contour de selection **/ plan.getSelectedFenetre().setSelected(false); plan.setSelectedFenetre(null); changeToMenu(MENU_EDITION); } } } }
l'autre marche parfaitement, le premier c'est le mur qui est ajouter au plan, l'autre c 'est la fenêtre qui est ajouté au mur, la différence est la mais lorsque je mets :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 if (plan.getSelectedFenetre() != null) { plan.getCurrentFloor().remove( plan.getSelectedFenetre()); plan.invalidate(); /** Suppresion du contour de selection **/ plan.getSelectedFenetre().setSelected(false); plan.setSelectedFenetre(null); changeToMenu(MENU_EDITION);
çà ne marche pas non plus,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 mur.remove(plan.getSelectedFenetre());
Je vous remercie
Partager