一、食用解读
注意了Values[0]
传回来的数是-10到10
,可以根据自己的实际需求进行缩放!
二、代码示例
例子,形如此类的。。
//一些定义
ProgressBar progressBarSpeed;
CheckBox checkBoxGravity;
SensorManager sensorManager;
Sensor sensor;
float X_lateral;//X方向角度
int Speed=0;//速度
TextView textViewSpeed;//显示速度值
/***
* 单选框事件
*/
private CompoundButton.OnCheckedChangeListener checkBoxGravityCheckedChangeListener = new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if (isChecked)
{
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);//获取手机里面的传感器
sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);//选择获取重力传感器
//监听函数 重力传感器对象 工作频率
sensorManager.registerListener(mySensorEventListener, sensor, SensorManager.SENSOR_DELAY_NORMAL);// SENSOR_DELAY_GAME
}
else
{
sensorManager.unregisterListener(mySensorEventListener);//释放传感器
}
}
};
/**
* 重力传感器监听事件
*/
SensorEventListener mySensorEventListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
if(event.sensor.getType() == Sensor.TYPE_ACCELEROMETER)
{
X_lateral = event.values[0]+10; //把-10到10的数据变为0-20
Speed = (int)((100-(X_lateral*10/2))*2);//变为0-200
if (Speed>100) {
Speed = 100;
}
textViewSpeed.setText(String.valueOf(Speed));
//Toast.makeText(controlcar.this, Y_longitudinal+"", 500).show();
runOnUiThread(new Runnable() {
public void run()
{
progressBarSpeed.setProgress(Speed);
}
});
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
};
protected void onPause() {
super.onPause();
sensorManager.unregisterListener(mySensorEventListener);
}
参考:
https://www.cnblogs.com/yangfengwu/p/7633980.html
https://blog.csdn.net/wll995806658/article/details/53993356