Android Java-摇动时更改颜色/文本
我很难找到正确的答案。 我想要的是,当我摇动时,我的颜色会变为其他颜色,或者文字会变为其他颜色。不一定是随机的。Android Java-摇动时更改颜色/文本,java,android,shake,Java,Android,Shake,我很难找到正确的答案。 我想要的是,当我摇动时,我的颜色会变为其他颜色,或者文字会变为其他颜色。不一定是随机的。 找不到任何不包含无用内容的有用内容。即使是20秒的谷歌搜索也能为您提供一个可能已经非常好用的复制粘贴解决方案,并提供一个简单的回拨,您可以在活动中做任何您想做的事情 使用下面的类,在创建它的新实例时,对您创建的实例调用setCallBack方法以接收回调,在通过传感器管理器注册侦听器时传递该实例 import android.hardware.Sensor; import andr
找不到任何不包含无用内容的有用内容。即使是20秒的谷歌搜索也能为您提供一个可能已经非常好用的复制粘贴解决方案,并提供一个简单的回拨,您可以在活动中做任何您想做的事情
使用下面的类,在创建它的新实例时,对您创建的实例调用setCallBack方法以接收回调,在通过传感器管理器注册侦听器时传递该实例
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
public class ShakeListener implements SensorEventListener {
private ShakeCallback mShakeCallback;
private int totalMovement;
private long timeMilies;
private float lastX, lastY, lastZ = -1.0f;
private int shakeIntervalMilies = 2000;
ShakeListener() {
}
public static ShakeListener newInstance() {
return new ShakeListener();
}
public ShakeListener setCallBack(ShakeCallback shakeCallback) {
this.mShakeCallback = shakeCallback;
return this;
}
public ShakeListener setShakingInterval(int intervalMilies) {
this.shakeIntervalMilies = intervalMilies;
return this;
}
@Override
public void onSensorChanged(SensorEvent event) {
if (mShakeCallback != null) {
totalMovement = (int) ((event.values[0] + event.values[1] + event.values[2]) - (lastX
+ lastY + lastZ));
if (totalMovement > 20
&& (System.currentTimeMillis() - timeMilies >= shakeIntervalMilies)) {
mShakeCallback.onShake();
timeMilies = System.currentTimeMillis();
}
lastX = event.values[0];
lastY = event.values[1];
lastZ = event.values[2];
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
public static interface ShakeCallback {
public void onShake();
}
}
经历这一切。这将有助于你做到这一点。