Как мне убедиться, что я не прокручиваю свое изображение при использовании scrollBy ()? - PullRequest
0 голосов
/ 04 августа 2020

Я не могу понять, как остановить прокрутку моей программы мимо изображения, которое есть в моем макете. Я думал, что могу установить 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;

    }
    
}
...