資源簡介
實現:1、應用級屏幕亮度隨關照強度變化 2、基于計步傳感器的簡易步數統計 3、基于地磁傳感器與加速度傳感器的簡易指南針

代碼片段和文件信息
package?com.example.logaxy.sensors;
import?android.hardware.Sensor;
import?android.hardware.SensorEvent;
import?android.hardware.SensorEventListener;
import?android.hardware.SensorManager;
import?android.support.v7.app.AppCompatActivity;
import?android.os.Bundle;
import?android.view.animation.Animation;
import?android.view.animation.RotateAnimation;
import?android.widget.ImageView;
public?class?Compass?extends?AppCompatActivity?{
????private?SensorManager?sensorManager;
????private?ImageView?compassImage;
????@Override
????protected?void?onCreate(Bundle?savedInstanceState)?{
????????super.onCreate(savedInstanceState);
????????setContentView(R.layout.activity_compass);
????????compassImage?=?(ImageView)?findViewById(R.id.compassImage);
????????sensorManager?=?(SensorManager)?getSystemService(SENSOR_SERVICE);
????????//獲取加速度傳感器
????????Sensor?acceleromenterSensor?=?sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
????????//獲取地磁傳感器
????????Sensor?magneticSensor?=?sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
????????sensorManager.registerListener(listener?acceleromenterSensor?SensorManager.SENSOR_DELAY_UI);
????????sensorManager.registerListener(listener?magneticSensor?SensorManager.SENSOR_DELAY_UI);
????}
????SensorEventListener?listener?=?new?SensorEventListener()?{
????????float[]?acceleromenterValues?=?new?float[3];
????????float[]?magneticValues?=?new?float[3];
????????private?float?lastRotateDegree;
????????@Override
????????public?void?onSensorChanged(SensorEvent?event)?{
????????????//獲取加速度傳感器和地磁傳感器的數據,并復制到兩個數組中去
????????????if?(event.sensor.getType()?==?Sensor.TYPE_ACCELEROMETER)
????????????????acceleromenterValues?=?event.values.clone();
????????????else?if?(event.sensor.getType()?==?Sensor.TYPE_MAGNETIC_FIELD)
????????????????magneticValues?=?event.values.clone();
????????????//旋轉矩陣R[]用來保存磁場數據和加速度數據
????????????float[]?R?=?new?float[9];
????????????float[]?values?=?new?float[3];
????????????//根據acceleromenterSensor和magneticSensor的數據填充旋轉矩陣R[]
????????????SensorManager.getRotationMatrix(R?null?acceleromenterValues?magneticValues);
????????????//根據旋轉矩陣R[]填充values[]
????????????SensorManager.getOrientation(R?values);
????????????//獲取方向角度,實現指南針為旋轉背景圖片,此處將角度取反
????????????float?rotateDegree?=?-(float)?Math.toDegrees(values[0]);
????????????//角度變化大于2時,旋轉圖片
????????????if?(Math.abs(rotateDegree?-?lastRotateDegree)?>?2)?{
????????????????RotateAnimation?animation?=?new?RotateAnimation(lastRotateDegree?rotateDegree
????????????????????????Animation.RELATIVE_TO_SELF?0.5f?Animation.RELATIVE_TO_SELF?0.5f);
????????????????animation.setFillAfter(true);
????????????????compassImage.startAnimation(animation);
????????????????lastRotateDegree?=?rotateDegree;
????????????}
????????}
????????@Override
????????public?void?onAccuracyChanged(Sensor?sensor?int?accuracy)?{
????????}
????};
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????945??2017-02-25?11:10??Sensor\main\AndroidManifest.xm
?????文件???????3207??2017-02-25?11:35??Sensor\main\java\com\example\logaxy\sensors\Compass.java
?????文件???????2440??2017-02-25?11:21??Sensor\main\java\com\example\logaxy\sensors\Light.java
?????文件???????1456??2017-02-23?16:35??Sensor\main\java\com\example\logaxy\sensors\MainActivity.java
?????文件???????1784??2017-02-25?10:27??Sensor\main\java\com\example\logaxy\sensors\SensorsApplications.java
?????文件???????1304??2017-02-22?13:11??Sensor\main\java\com\example\logaxy\sensors\ShowAllSensors.java
?????文件???????1435??2017-02-25?10:27??Sensor\main\java\com\example\logaxy\sensors\StepCounter.java
?????文件?????255448??2017-02-24?12:56??Sensor\main\res\drawable\arrow.png
?????文件?????514514??2017-02-24?13:22??Sensor\main\res\drawable\compass.png
?????文件????????231??2017-02-22?12:38??Sensor\main\res\drawable\greencricle.xm
?????文件????????231??2017-02-22?12:38??Sensor\main\res\drawable\orangecricle.xm
?????文件???????1086??2017-02-24?13:18??Sensor\main\res\layout\activity_compass.xm
?????文件????????979??2017-02-25?10:27??Sensor\main\res\layout\activity_light.xm
?????文件???????1703??2017-02-22?12:52??Sensor\main\res\layout\activity_main.xm
?????文件???????1245??2017-02-24?13:04??Sensor\main\res\layout\activity_sensors_applications.xm
?????文件???????1073??2017-02-22?13:07??Sensor\main\res\layout\activity_show_all_sensors.xm
?????文件???????1212??2017-02-25?10:27??Sensor\main\res\layout\activity_step_counter.xm
?????文件???????3418??2017-02-22?10:31??Sensor\main\res\mipmap-hdpi\ic_launcher.png
?????文件???????2206??2017-02-22?10:31??Sensor\main\res\mipmap-mdpi\ic_launcher.png
?????文件???????4842??2017-02-22?10:31??Sensor\main\res\mipmap-xhdpi\ic_launcher.png
?????文件???????7718??2017-02-22?10:31??Sensor\main\res\mipmap-xxhdpi\ic_launcher.png
?????文件??????10486??2017-02-22?10:31??Sensor\main\res\mipmap-xxxhdpi\ic_launcher.png
?????文件????????214??2017-02-22?10:31??Sensor\main\res\values\colors.xm
?????文件????????216??2017-02-22?10:31??Sensor\main\res\values\dimens.xm
?????文件?????????73??2017-02-22?10:31??Sensor\main\res\values\strings.xm
?????文件????????394??2017-02-22?10:31??Sensor\main\res\values\st
?????文件????????364??2017-02-22?10:31??Sensor\main\res\values-w820dp\dimens.xm
?????目錄??????????0??2017-02-25?11:38??Sensor\main\java\com\example\logaxy\sensors
?????目錄??????????0??2017-02-25?11:38??Sensor\main\java\com\example\logaxy
?????目錄??????????0??2017-02-25?11:38??Sensor\main\java\com\example
............此處省略17個文件信息
- 上一篇:java實現在線聊天室
- 下一篇:人事管理系統Java源碼 MySQL數據庫
評論
共有 條評論