Плавное перемещение изображения с помощью акселерометра в Android
Я создаю приложение для Android, похожее на рентгеновский сканер ( Play Store Link), которое плавно перемещает изображения на экране, перемещая устройство влево, вправо вверх и вниз.
Я использую акселерометр для этого, но проблема в том, что изображение не движется плавно. Мой код ниже
int x1 = (int) sensorEvent.values[0]*(screenW/10);
int y1 = (int) sensorEvent.values[1]*(screenH/14);
а затем в розыгрышеcanvas.drawBitmap(bmp, x, y, mPaint);
1 ответ
Это не то, как вы их используете. Вы должны принять текущее значение и ДОБАВИТЬ в текущую позицию вместо того, чтобы устанавливать позицию из значения напрямую. Чем больше вы наклоняете - тем больше значений вы получите и, следовательно, тем быстрее будет двигаться изображение. Затем вы можете также применить некоторую линейную интерполяцию к движению, чтобы оно выглядело более плавным.
Вот ссылка, чтобы узнать больше о lerp (линейной интерполяции) в коде: http://en.wikipedia.org/wiki/Linear_interpolation