Я не могу понять, как остановить прокрутку моей программы мимо изображения, которое есть в моем макете. Я думал, что могу установить x равным 0, если он выходит за пределы, но я не могу понять, какова граница по отношению к значению ускорения акселерометра.
@Override
public void onSensorChanged(SensorEvent event)
{
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER)
{
getAccelerometer(event);
}
}
private void getAccelerometer(SensorEvent event)
{
float[] values = event.values;
// Movement
float x = values[0];
float y = values[1];
float z = values[2];
final int acceleration = maxX / bitmapWidth * 2;
float accelerationSquareRoot = (x * x + y * y + z * z)
/ (SensorManager.GRAVITY_EARTH * SensorManager.GRAVITY_EARTH);
long actualTime = event.timestamp;
/*
if( Math.abs(scrollIndex) > 2) // if scroll amount is too much override it and set it to 0
{
x = 0;
}
*/
scrollIndex += x;
fretboardView.scrollBy( (int) x * (int) accelerationSquareRoot * acceleration, 0);
if (accelerationSquareRoot >= 2)
{
if (actualTime - lastUpdate < 200)
{
return;
}
lastUpdate = actualTime;
}
}