android - 在android中使用加速度计平滑移动图像

标签 android accelerometer android-sensors

我正在构建一个类似于 x 射线扫描仪 (Play Store Link) 的 android 应用程序,它通过左右移动设备在屏幕上平滑地移动图像。

我为此使用加速度计,但问题是图像移动不流畅。 我的代码在下面

int x1 = (int) sensorEvent.values[0]*(screenW/10);
int y1 = (int) sensorEvent.values[1]*(screenH/14);

然后在绘制 canvas.drawBitmap(bmp, x, y, mPaint);

最佳答案

这不是您使用它们的方式。您应该获取当前值并添加到当前位置,而不是直接从值设置位置。倾斜得越多 - 获得的值就越大,因此图像看起来移动得越快。 然后,您还可以对运动应用一些线性插值,使其看起来更平滑。

这里是一个链接,可以在代码中了解有关 lerp(线性插值)的更多信息:http://en.wikipedia.org/wiki/Linear_interpolation#Programming_language_support

关于android - 在android中使用加速度计平滑移动图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17746791/

相关文章:

android - 如何将部分维基百科内容检索到 Android 应用程序中?

android - 如何在获得加速度计测量值的同时获得方位角!ORIENTATION vs ACCELEROMETER

android - 如何在 Android 中获取位置及其温度?

Android Galaxy S3 停止安装 mtp 到 debian 测试

android - Phonegap 如何在 Android 应用程序中下载和打开 pdf 文件

ios - 拍照时相机方向改变。即使方向被锁定。

android - Intentservice 不调用 runnable

java - 是否可以使用 RxJava 在非主线程中调用 “onSensorChanged” 方法?

android - 如何在使用选项卡时添加导航架构

android - 何时在 Android 上使用加速度计或陀螺仪