zoukankan      html  css  js  c++  java
  • android 传感器

    public class MainActivity extends Activity {
        private ImageView imageView;
        //传感器管理器
        private SensorManager manager;
        //传感器监听器
        private SensorListener listener = new SensorListener();
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            imageView = (ImageView) this.findViewById(R.id.imageView);
            imageView.setKeepScreenOn(true);
            //由于传感器是系统提供的服务,所以通过该方法可以获得传感器管理器
            manager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        }
    
        @Override
        protected void onResume() {
            //在应用在前台时,获取相应的传感器
            Sensor sensor = manager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
            //通过传感器管理器为传感器注册监听器,SensorManager.SENSOR_DELAY_GAME采样频率
            manager.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_GAME);
            super.onResume();
        }
    
        @Override
        protected void onPause() {
            //在应用离开前台时,取消注册的监听器
            manager.unregisterListener(listener);
            super.onPause();
        }
        //传感器监听器
        private final class SensorListener implements SensorEventListener{
            //记录先前的值
            private float predegree = 0;
            public void onSensorChanged(SensorEvent event) {
                //获取当前传感器的采样值
                float degree = event.values[0];//存放了方向值 90
                RotateAnimation animation = new RotateAnimation(predegree, -degree, 
                        Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
                animation.setDuration(200);
                imageView.startAnimation(animation);
                predegree = -degree;
            }
    
            public void onAccuracyChanged(Sensor sensor, int accuracy) {
            }
        }
        
        
    }
  • 相关阅读:
    ambry集群搭建(无SSL验证的方式)
    接口属性命名不规范的处理方式
    windows下搭建ElasticSearch
    MyBatis-Plus分页插件——PageHelper和IPage原理介绍
    饥荒服务器搭建加mod使用 阿里云服务器 Ubuntu18
    WSL2+Ubuntu20.04桌面功能配置
    设计模式学习总结(Java版)
    Java in 蓝桥杯
    Windows 批处理脚本学习
    Vue风格指南小结
  • 原文地址:https://www.cnblogs.com/heml/p/3518113.html
Copyright © 2011-2022 走看看