900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Android学习之重力传感器使用

Android学习之重力传感器使用

时间:2019-10-24 12:35:40

相关推荐

Android学习之重力传感器使用

一、食用解读

注意了Values[0]传回来的数是-10到10,可以根据自己的实际需求进行缩放

二、代码示例

例子,形如此类的。。

public class control extends MainActivity {//注意,这个类是继承MainActivity的!!!private static final String TAG = "control";ProgressBar progressBarSpeed;CheckBox checkBoxGravity;SensorManager sensorManager;Sensor sensor;float X_lateral;//X方向角度int Speed=0;//速度TextView textViewSpeed;//显示速度值@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.control);checkBoxGravity = (CheckBox) findViewById(R.id.checkBox31);progressBarSpeed = (ProgressBar) findViewById(R.id.progressBar31);textViewSpeed = (TextView) findViewById(R.id.textView33);checkBoxGravity.setOnCheckedChangeListener(checkBoxGravityCheckedChangeListener);}/**** 单选框事件*/private CompoundButton.OnCheckedChangeListener checkBoxGravityCheckedChangeListener = new CompoundButton.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {// TODO Auto-generated method stubif (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() {@Overridepublic void onSensorChanged(SensorEvent event) {// TODO Auto-generated method stubif(event.sensor.getType() == Sensor.TYPE_ACCELEROMETER){X_lateral = event.values[0]+10; //把-10到10的数据变为0-20Speed = (int)((100-(X_lateral*10/2))*2);//变为0-200if (Speed>100) {Speed = 100;}textViewSpeed.setText(String.valueOf(Speed));runOnUiThread(new Runnable() {public void run(){progressBarSpeed.setProgress(Speed);}});//Log.e(TAG, event.values[0]+"" );}else {sensorManager.unregisterListener(mySensorEventListener);runOnUiThread(new Runnable() {public void run() {checkBoxGravity.setChecked(false);Toast.makeText(getApplicationContext(), "传感器不存在!!!", Toast.LENGTH_SHORT).show();}});}}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {// TODO Auto-generated method stub}};protected void onPause() {super.onPause();sensorManager.unregisterListener(mySensorEventListener);}}

参考:

/yangfengwu/p/7633980.html

/wll995806658/article/details/53993356

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。