Bonjour a tous,
J'aurais besoin de votre aide, voila mon problème :

Je suis en train de développer une application de réalité augmentée et j'ai quelques problèmes de fluidité. Je m'explique, mon application est de type "orientation", comme l'appli wikitude pour ceux qui connaissent. Je veux indiquer a l'utilisateur, sur son écran de portable, se qui est devant lui à l'aide d'une petite image.
J'utilise les capteurs du téléphone suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
magnetic = sensorMngr.getDefaultSensor (Sensor.TYPE_MAGNETIC_FIELD);
accelerometer = sensorMngr.getDefaultSensor (Sensor.TYPE_ACCELEROMETER);
orient = sensorMngr.getDefaultSensor (Sensor.TYPE_ORIENTATION);
 
sensorMngr.registerListener (sensorLstr, magnetic, SensorManager.SENSOR_DELAY_UI);
sensorMngr.registerListener (sensorLstr, accelerometer, SensorManager.SENSOR_DELAY_UI);
sensorMngr.registerListener (sensorLstr, orient, SensorManager.SENSOR_DELAY_UI);
Le capteur orientation pour le calcul de l'azimut et le reste pour le pitch. Le placement de l'image n'est pas mon problème mais plus son déplacement...il n'est pas fluide. A chaque réception d'une valeur de mes capteurs je mets à jour la position de mon image à l'aide d'un setMargin().

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
float angle = (float) angleDirection (getSpotAngle (c, p, me), azimut);
lp = new FrameLayout.LayoutParams (FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT);
if (pitch < screenHeight / 2)
   marginTop = (int) ( (Math.abs (pitch) - 90) / 90 * screenHeight);
else
   marginTop = - (int) ( (Math.abs (pitch) - 90) / 90 * screenHeight);
 
marginLeft = (int) ( - angle * screenWidth / 90);
lp.setMargins (marginLeft , marginTop, 0, 0);
L'angle correspond à l'angle entre mon azimut et la direction entre ma position et la position de mon point.

Je ne sais pas quoi faire pour que le déplacement de mon image se fasse de façon fluide. Aujourd'hui l'image saute...
Par contre je répète que mon problème ne vient pas du placement de l'image mais du déplacement.

J'espère avoir été assez clair.
Je vous remercie, si vous avez des questions n'hésitez pas.