Bonjour à tous,
J'ai besoin d'une grosse aide à un parcours de mon projet. C'est pour le drag and drop. J'ai cherché partout sur le net j'ai trouvé pleins de programmes mais aucun ne fait la même chose, je ne sais vraiment pas comment faire.
Explication : J'ai 6 ImageViews, chacunes (leur copie car l'image d'origine doit rester à la même place) doit être draggable. Puis ensuite venir à une place précise si l'utilisateur lache l'image prêt de l'emplacement, sinon revenir à la place d'origine.
Pour le code qui va suivre j'ai suivi ce lien là : http://myandroidwidgets.googlecode.c...runk/DragDrop/
Voici mon code (long car je répète chaque chose 6 fois - pour chacunes de mes images)
Au final, quand je teste ceci, je n'obtiens plus que la dernière image (au lieu d'avoir les 6 les unes sous les autres), et quand j'appuie sur cette image, elle change pour l'autre que j'ai défini dans le code (là ou je demande comment obtenir l'image pour laquelle j'ai appuyé).
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 public class IntCalculs extends Activity implements OnTouchListener { private final static int START_DRAGGING = 0; private final static int STOP_DRAGGING = 1; private int status; private LayoutParams params; private FrameLayout layout; private int[] tabdonnees = new int[100]; ImageView imav = null; ImageView imre = null; ImageView imdr = null; ImageView imga = null; ImageView impo = null; ImageView imle = null; ImageView imtemp = null; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.cal); imav = (ImageView) findViewById(R.id.imav); imre = (ImageView) findViewById(R.id.imre); imdr = (ImageView) findViewById(R.id.imdr); imga = (ImageView) findViewById(R.id.imga); impo = (ImageView) findViewById(R.id.impo); imle = (ImageView) findViewById(R.id.imle); layout = (FrameLayout) findViewById(R.id.layoutForScroll1); imav.setDrawingCacheEnabled(true); imre.setDrawingCacheEnabled(true); imga.setDrawingCacheEnabled(true); imdr.setDrawingCacheEnabled(true); imle.setDrawingCacheEnabled(true); impo.setDrawingCacheEnabled(true); imav.setOnTouchListener(this); imre.setOnTouchListener(this); imdr.setOnTouchListener(this); imga.setOnTouchListener(this); impo.setOnTouchListener(this); imle.setOnTouchListener(this); params = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); } @Override public boolean onTouch(View v, MotionEvent m) { if (m.getAction() == MotionEvent.ACTION_DOWN) { status = START_DRAGGING; imtemp = new ImageView(this); imtemp.setImageBitmap(imav.getDrawingCache()); // comment connaitre l'image pour laquelle j'ai appuyer ? La j'ai mis imav pour testé. layout.addView(imtemp, params); } if (m.getAction() == MotionEvent.ACTION_UP) { status = STOP_DRAGGING; } else if (m.getAction() == MotionEvent.ACTION_MOVE) { if (status == START_DRAGGING) { System.out.println("Dragging"); imtemp.setPadding((int) m.getRawX(), (int) m.getRawY(), 0, 0); imtemp.invalidate(); } } return false; } }
Merci beaucoup de votre aide, parce que là je suis bloqué et je ne sais pas quoi faire.
Partager