资源简介
实现: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数据库
相关资源
- 指纹传感器FPC1080在android下的驱动
- Android 项目源码利用加速度传感器实
- j2ee实验-模拟传感器的Web程序-servlet
- Android项目源码利用加速度传感器实现
- Android 百度地图 SDK v3.0.0 二 定位与结
- android传感器高级编程
- 基于STM32F103的MAX30205人体体温传感器的
- 传感器有关大作业项目
- 光照传感器的使用
- Android 水准仪方向传感器
- 我的Android进阶之旅------>Android利用温
- 基于MEMS加速度传感器的计步器毕设
- Android项目源码利用加速度传感器实现
- Android记录wifi信号强度,磁场传感器,
- 使用android手机陀螺仪传感器获得手机
- Android之通过距离传感器控制屏幕熄灭
- 打开摄像头并在预览画面上显示传感
- Android传感器实战-简易指南针
- Android通过上面的距离传感器控制手机
- 通过Google内置计步器和加速度传感器
- Android开发-Sensor传感器-AndroidStudio(一
- 传感器融合论文
- android各传感器开发,显示返回数据
- android数据采集功能
- Android传感器开发与智能设备案例实战
- android计步小程序
- Android开发-Sensor传感器-AndroidStudio(二
- Android 磁场指南针(传感器-12_106)
- Android获取手机所有Sensor传感器并测试
- 无线温湿度传感器上位机JAVA代码
评论
共有 条评论