gpt4 book ai didi

android - 如何在 Android 中延迟 onSensorChange

转载 作者:行者123 更新时间:2023-11-30 03:01:18 25 4
gpt4 key购买 nike

我是安卓开发的新手。我正在创建一个简单的应用程序,只要传感器发生变化,它就会移动位图。我正在使用传感器 TYPE_ACCELEROMETER但问题是它移动位图太快,即使传感器有轻微变化,位图也会在一个地方摇晃。我只想延迟 onSensorChange 返回值请帮助我这是我的 SensorManager 代码

public Can(Context context) {
// TODO Auto-generated constructor stub
super(context);
ourHolder = getHolder();
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "hi");
sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
if (sm.getSensorList(Sensor.TYPE_ACCELEROMETER).size() != 0) {
Sensor s = sm.getSensorList(Sensor.TYPE_ACCELEROMETER).get(0);
sm.registerListener(this, s, SensorManager.SENSOR_DELAY_GAME);
}
ball = BitmapFactory
.decodeResource(getResources(), R.drawable.ball);
test = BitmapFactory.decodeResource(getResources(),
R.drawable.ic_launcher);
ClockStart = (float) System.currentTimeMillis();
ballwidth = ball.getWidth();
ballheight = ball.getHeight();
}

这里是 onSensorChange 的作用

    public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
try {
Thread.sleep(16);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sensorY = event.values[0];
sensorX = event.values[1];
}

任何帮助将不胜感激

最佳答案

那绝对不是你想做的。事实上,它会造成很大的问题。如果您绘制得太频繁,您要做的是跳过对 onSensorChanged 的​​一些调用。如果您对太小的震动使用react,您只需在变化大于一定量时设置 sensorY 和 sensorX。

顺便说一句,加速度计很吵。即使放在平坦稳定的表面上,它也会跳来跳去。您需要预料到会发生这种情况。

关于android - 如何在 Android 中延迟 onSensorChange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22496489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com