Aripuca GPS Tracker presents new look of its compass. Enjoy compass with rotating bezel and built in bubble level.
Compass ativity implements onTouchListener interface
Here is a quick example how to rotate compass by touch event.
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
downX = event.getX();
downY = event.getY();
return true;
case MotionEvent.ACTION_MOVE:
upX = event.getX();
upY = event.getY();
double downR = Math.atan2(v.getHeight() / 2 - downY, downX - v.getWidth() / 2);
int angle1 = (int) Math.toDegrees(downR);
double upR = Math.atan2(v.getHeight() / 2 - upY, upX - v.getWidth() / 2);
int angle2 = (int) Math.toDegrees(upR);
this.rotateCompass(angle1 - angle2);
// update starting point for next move event
downX = upX;
downY = upY;
return true;
}
return false;
}
