• 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) {
            }
        }
        
        
    }
  • 相关阅读:
    513. Find Bottom Left Tree Value(LeetCode)
    647. Palindromic Substrings(LeetCode)
    537. Complex Number Multiplication(LeetCode)
    338. Counting Bits(LeetCode)
    190. Reverse Bits(leetcode)
    Java多线程核心技术
    正则表达式
    linux 怎么把^M去掉
    分片与分区的区别
    《MYSQL技术精粹》读书笔记
  • 原文地址:https://www.cnblogs.com/heml/p/3518113.html
Copyright © 2020-2023  润新知