Bonjour à tous!!

je souhaiterais faire bouger, slider progressivement, "en temps réel" (une sorte de drag) des pseudo-barres (matérialisées par des drawLine dans un canvas.
La classe ci dessous, est appelée par une autre classe qui fait un invalidate() toutes les 150ms.
...Les multiples booleans n'ont pas l'air très bloquants (j1, j2 servent à savoir quelle barre on veut bouger).
Mais les barres/line pour l'instant ne bougent pas.

Merci!


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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
import android.util.AttributeSet;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
public class lecanvas extends View{
	float f1;boolean j1;boolean j2;
	float f2;boolean debut=false;
	private GestureDetector mGestureDetector;
 
	Paint p=new Paint();	
	class SideIndexGestureListener extends GestureDetector.SimpleOnGestureListener {
	      @Override
	      public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
	          // we know already coordinates of first touch
	          // we know as well a scroll distance
	          sideIndexX = sideIndexX - distanceX;
	          sideIndexY = sideIndexY - distanceY;
 
	          // when the user scrolls within our side index
	          // we can show for every position in it a proper
	          // item in the country list
	          if (sideIndexX >= 0 && sideIndexY >= 0) {
	              //  displayListItem();
	          }
 
	          return super.onScroll(e1, e2, distanceX, distanceY);
	      }
	  }
 
	public lecanvas(Context context) {
		super(context);
		 mGestureDetector = new GestureDetector(context, new SideIndexGestureListener());
		// TODO Auto-generated constructor stub
	}
	public lecanvas(Context context, AttributeSet attrs) {
	      super(context, attrs);
	      mGestureDetector = new GestureDetector(context, new SideIndexGestureListener());
 
	}
	protected void onDraw (Canvas c) {
 
		int width = getWidth();
		int height = getHeight();
		if (debut == false) {
			f1 = 25;
			f2 = width - 25;
		}
 
		p.setColor(Color.CYAN);
		c.drawLine(f1, Math.round(height / 2) + 1, f1, height - 25, p);
		c.drawLine(f2, Math.round(height / 2) + 1, f2, height - 25, p);
 
 
		this.setOnTouchListener(new OnTouchListener() {
			@Override
			public boolean onTouch(View v, MotionEvent event) {
				return false;
			}
 
 
		});
 
 
	}
 
	 public boolean onTouchEvent( MotionEvent event) {
		 switch (event.getActionMasked()){
			 case MotionEvent.ACTION_DOWN:
			 j1=false;j2=false;if ((event.getX()<f1+10)&&
					 (event.getX()>f1-10)){j1=true;debut=true;
			}
			 else{if ((event.getX()<f2+10)&&
					 (event.getX()>f2-10)){debut=true;j2=true;
			 }
			 }
				 break;
			 case MotionEvent.ACTION_MOVE:
				 if (j1==true){f1 = event.getX();}
				 else{if (j2==true){f2 = event.getX();}
				 }
 
				 break; 
				}
		 if (mGestureDetector.onTouchEvent(event)) {
			 return true;
		 } else {
			 return false;
		 }
 
	 }};