안드로이드 나침반 구현

2076 단어
기능 실현: 나침반 센서를 통해 회전 각도를 얻고 나침반 그림의 회전 애니메이션을 설정하면 된다.
4
  • 센서 설정을 위한 시스템 SensorManager 가져오기(변수 선언됨)
  •     private Sensor sensor;
        private SensorManager sensorManager;
        private ImageView ivCompass;//     
        private float fromDegrees = 0f, toDegrees;//       、    
    
        @Override
        protected void onResume() {
            super.onResume();
            sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
            //   getDefaultSensor         
            sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
            //            ,            
            sensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL);
        }
    

    app 실행 효율을 높이기 위해 이 코드를 onResume () 방법에 놓고 인터페이스를 보여줄 때만 실행합니다
    2.Activity가 Sensor Event Listener를 실현하고 onSensor Changed와 onAccuracy Changed 방법을 복사하도록 한다. 우리는 onSensor Changed 방법에서 논리를 보완하기만 하면 된다.
    
        @Override
        public void onSensorChanged(SensorEvent sensorEvent) {
    
            switch (sensorEvent.sensor.getType()){
                case Sensor.TYPE_ORIENTATION:
                    //       ,         ,        
                    toDegrees = -sensorEvent.values[0];
                    //            ,       0;               
                    RotateAnimation ra = new RotateAnimation(fromDegrees, toDegrees, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
                    //    200  
                    ra.setDuration(200);
                    ra.setFillAfter(true);
                    ivCompass.startAnimation(ra);
                    fromDegrees = toDegrees;
                    break;
            }
        }
    

    setFillAfter 매개 변수는true: 애니메이션이 끝날 때마다 끝날 때의false: 애니메이션이 끝날 때마다 애니메이션이 시작할 때의 모습으로 돌아갑니다
    3. App이 현재 인터페이스를 종료할 때 센서 사용을 멈추도록 onPause() 방법에 추가
        @Override
        protected void onPause() {
            super.onPause();
            sensorManager.unregisterListener(this);
        }
    

    파라미터는this, 즉 모든 감청기를 취소하기 위해 다른 파라미터는 어떤 감청기를 선택할 수 있습니다
    이 모든 것을 다 한 후에도 앱이 실행되지 않는다면
    너의 낡은 기회를 버려라.나침반 센서도 없다!!!

    좋은 웹페이지 즐겨찾기