1传感器概念

图片资源来自传智播客张泽华视频114集

demo

1布局一张图片 网上随便找一张指南针图片

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><ImageViewandroid:id="@+id/iv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:src="@drawable/point" /></RelativeLayout>

2MainActivity

package com.example.a114pointer;import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.RotateAnimation;
import android.widget.ImageView;
import android.app.Activity;public class MainActivity extends Activity {// 本例要在真机运行private SensorManager sensorManager;private MyListener listener;private ImageView iv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// SENSOR_SERVICE传感器服务sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);// 得到设备默认传感器 SENSOR_ORIENTATION:方向传感器Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);listener = new MyListener();iv = (ImageView) findViewById(R.id.iv);// 注册传感器 paras 1listener 2sensor指定使用哪个传感器 3rate传感器取样频率 频率大精度高耗电大sensorManager.registerListener(listener, sensor,SensorManager.SENSOR_DELAY_UI);}private class MyListener implements SensorEventListener {float startAngle = 0;@Overridepublic void onSensorChanged(SensorEvent event) {// 当sensor传感器数据发生变化时调用// 方向传感器values[0]代表实际与地磁场正北夹角 夹角为0-正北 夹角90-正东float[] values = event.values;float angle = values[0];// Toast.makeText(MainActivity.this, "与正北夹角"+angle,// Toast.LENGTH_SHORT).show();System.out.println("与正北夹角" + angle);RotateAnimation ra = new RotateAnimation(startAngle, angle,Animation.RELATIVE_TO_SELF, 0.5f,Animation.RELATIVE_TO_SELF, 0.5f);ra.setDuration(1000);iv.startAnimation(ra);startAngle = -angle;}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {// 精确度变化(外部和内部因素)时调用}}@Overrideprotected void onDestroy() {// TODO Auto-generated method stub// 一定要解除注册 否则一直耗电sensorManager.unregisterListener(listener);listener = null;super.onDestroy();}}

经测试,本人手机角度一直停留在315° 左右,原因不明,其他两部手机测试正常 有发现问题请告知我

Android笔记 方向传感器相关推荐

  1. Android 利用方向传感器实现 指南针

    step1:新建一个项目Compass,并将一张指南针图片导入到res/drawable-hdpi目录中 step2:设计应用的UI界面,main.xml <?xml version=" ...

  2. Android 利用方向传感器获得手机的相对角度

    1.android 的坐标系是如何定义x, y z 轴的. x轴的方向是沿着屏幕的水平方向从左向右,如果手机不是正方形的话,较短的边需要水平放置,较长的边需要垂直放置. Y轴的方向是从屏幕的左下角开始 ...

  3. Android 利用方向传感器实现 指南针

    step1:新建一个项目Compass,并将一张指南针图片导入到res/drawable-hdpi目录中 step2:设计应用的UI界面,main.xml <?xml version=" ...

  4. Android利用方向传感器获得手机的相对角度实例说明

    1.android 的坐标系是如何定义x, y z 轴的 x轴的方向是沿着屏幕的水平方向从左向右,如果手机不是正方形的话,较短的边需要水平放置,较长的边需要垂直放置. Y轴的方向是从屏幕的左下角开始沿 ...

  5. Android基于方向传感器实现指南针功能

    这里做了一个指南针,主要用到了Android里的加速度传感器和地磁传感器 Github源码 1.数据初始化 private USensor(Context context) {if (sorMgr = ...

  6. android 横盘方向传感器,横盘震荡选择方向!

    2020.10.15日 上证指数: 大盘已经连续3天盘整了,而且这三天还是逐渐下行的态势. 今天冲高后又被打下来,显得有气无力.按理说上面的缺口不远了,很容易就能补上,不知道主力是怎么想的,这里到底是 ...

  7. Android方向传感器的相关问题

    android的方向传感器Sensor.TYPE_ORIENTATION(已过时,实测新方法得到的结果和旧方法一致) 三个值分别表示: value[0] 方向角,用来测方向 value[1] 垂直方向 ...

  8. Android Sensor Orientation 传感器开发

    手机方向图 将手机平放在桌面上来看,手机的左下角是坐标原点,水平向右为x轴,水平向前为y轴,由x轴和y轴正方向叉乘形成的方向 为z轴,当手机平放时,z轴指向天空的方向. 注释: 手机放平: 水平旋转 ...

  9. android学习笔记---57_采用方向传感器实现指南针,android设备传感器介绍,以及使用方法

    Java技术qq交流群:JavaDream:251572072 ------------------------------------------------------ 传感器类型:方向.加速度( ...

最新文章

  1. oracle跑with语句很慢,oracle 11g新特性---WITH语句增强
  2. javascript知识点
  3. Jeff Dean亲笔盘点谷歌AI 2019:日均2篇论文,纵横16大方向,一文汇集重要开源算法...
  4. 【算法题】天平砝码称重
  5. Java struts 2 源码阅读入门
  6. MongoDB和Redis区别
  7. go使用for...range遍历数组
  8. NE5532前级音调板 带高中低音调节和音量调节
  9. 11.1 JavaScript介绍
  10. 海外高校毕业证的颜色
  11. 计算机网络之传输层:4、TCP连接管理
  12. Java 并发编程阅读笔记
  13. 苹果回应iPhone邮件漏洞;GitHub连续3天爆严重宕机情况;腾讯开源Transformer推理加速工具| 极客头条...
  14. Zabbix使用snmptrap方式监控vCenter Server
  15. 简单的个人介绍网页【附代码】
  16. mac 网络共享 wifi共享
  17. 119 李元翼 梧里 徒死無益
  18. 苹果8p电池多少毫安的_买得起手机未必用得起售后:苹果iPhone12修一下多少钱?|iphone12|手机|电池|iphone...
  19. 使用iBatis中报 java.sql.SQLException: 无效的列类型异常
  20. 北京数字认证股份有限公司-数字证书认证管理解决方案

热门文章

  1. nuxt.js 引入第三方插件报window is not defined
  2. 支付宝手机网站支付(基于Java实现支付宝手机网站支付)
  3. $mona$要成为高端玩家
  4. mysql 索引的简单使用
  5. 确保已在无线网络上启用dhcp服务器,WiFi无线网络提示未启用DHCP无法上网的解决方法教程[多图]...
  6. php 编译 iconv错误,php编译错误:configure: error: Please reinstall the iconv library.
  7. 二叉树——求先序排列(洛谷 P1030)
  8. C语言课后习题(28)
  9. android微信调试网页,Mac OS X EI Capitan 下调试 Android 微信内嵌网页
  10. DB-Engines:Snowflake荣获2021年的年度DBMS