指南针的分享

//定义成员的变量 private TextView tv1 ; private MySensro mySensro ; private Button but1 ; private SensorManager systemService ;
@Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout. activity_main ); tv1 = (TextView) findViewById(R.id. tv1 ); //初始化控件 initview(); //通过服务拿到传感器经理.getSystemService(SENSOR_SERVICE),要强类型转换. systemService = (SensorManager) getSystemService( SENSOR_SERVICE ); //通过传感器经理得到方向传感器的对象.getDefaultSensor 参数:3(也就是我给大家表的位置) Sensor defaultSensor = systemService .getDefaultSensor( 3 ); //创建一个自己的传感器监听器 mySensro = new MySensro(); //注册传感器监听,registerListener,参数:1.传感器监听器 2.传感器对象 3.决定采样的敏感度.SensorManager.SENSOR_DELAY_NORMAL:正常采样 systemService .registerListener( mySensro ,defaultSensor,SensorManager. SENSOR_DELAY_NORMAL );
} //初始化的控件 private void initview() { //找到控件 but1 = (Button) findViewById(R.id. but ); //给button进行监听跳转 but1 .setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity. this , GuangchuanActivity. class ); startActivity(intent); } }); }
/** * 自定义一个类实现SensorEventListener,做为传感器监听 */ private class MySensro implements SensorEventListener{ //当传感器数据变化的调用的方法 @Override public void onSensorChanged(SensorEvent event) { //当传感器数据变化的调用的方法 //通过传感器事件,得到方向值(int).event.values[0]
float value = event. values [ 0 ]; //提示:地磁北极和手机y轴的夹角, 0=北, 90=东, 180=南, 270=西 //当度数大于0且小于90为东北方向.使用if ,if else // 当度数=0,90,180,270时,北东南西 if (value > 0 && value< 90 ) { tv1 .append( "东北" + " \n " ); } else if (value > 90 && value< 180 ) { tv1 .append( "东南" + " \n " ); } else if (value > 180 && value< 270 ) { tv1 .append( "西南" + " \n " ); } else if (value > 270 && value< 360 ) { tv1 .append( "西北" + " \n " ); } else if (value == 0 ) { tv1 .append( "北" + " \n " ); } else if (value == 90 ) { tv1 .append( "西" + " \n " ); } else if (value == 180 ) { tv1 .append( "南" + " \n " ); } else if (value == 270 ) { tv1 .append( "北" + " \n " ); }
} //当传感器精度发生变化的时候调用的方法 @Override public void onAccuracyChanged(Sensor sensor, int accuracy) {
} } /** * 在Activity销毁的生命周期里,解除监听,释放资源. */ @Override protected void onDestroy() { super .onDestroy(); //解除光传感器监听,unregisterListener参数监听器对象 systemService .unregisterListener( mySensro ); //把自己的传感器监听器=空 mySensro = null ; }


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部