转载自:

http://blog.csdn.net/onlyonecoder/article/details/8475653

图片神马的在网上搜个指南针图片就好了,本来没有注释,发上来之后感觉不行,还是加上吧,方便学习

main.xml

[html]  view plain  copy
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical"
  6. android:gravity="center"
  7. >
  8. <ImageView
  9. android:id="@+id/compass_imageView"
  10. android:layout_width="wrap_content"
  11. android:layout_height="wrap_content"
  12. android:src="@drawable/compass" />
  13. </LinearLayout>

compass.Activity

[java]  view plain  copy
[java]  view plain  copy
  1. import android.app.Activity;
  2. import android.hardware.Sensor;
  3. import android.hardware.SensorEvent;
  4. import android.hardware.SensorEventListener;
  5. import android.hardware.SensorManager;
  6. import android.os.Bundle;
  7. import android.view.animation.Animation;
  8. import android.view.animation.RotateAnimation;
  9. import android.widget.ImageView;
  10. /**
  11. * 电子罗盘 方向传感器
  12. */
  13. public class ComPassActivity extends Activity implements SensorEventListener {
  14. private ImageView imageView;
  15. private float currentDegree = 0f;
  16. public void onCreate(Bundle savedInstanceState) {
  17. super.onCreate(savedInstanceState);
  18. setContentView(R.layout.compass);
  19. imageView = (ImageView) findViewById(R.id.compass_imageView);
  20. // 传感器管理器
  21. SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);
  22. // 注册传感器(Sensor.TYPE_ORIENTATION(方向传感器);SENSOR_DELAY_FASTEST(0毫秒延迟);
  23. // SENSOR_DELAY_GAME(20,000毫秒延迟)、SENSOR_DELAY_UI(60,000毫秒延迟))
  24. sm.registerListener(ComPassActivity.this,
  25. sm.getDefaultSensor(Sensor.TYPE_ORIENTATION),
  26. SensorManager.SENSOR_DELAY_FASTEST);
  27. }
  28. //传感器报告新的值(方向改变)
  29. public void onSensorChanged(SensorEvent event) {
  30. if (event.sensor.getType() == Sensor.TYPE_ORIENTATION) {
  31. float degree = event.values[0];
  32. /*
  33. RotateAnimation类:旋转变化动画类
  34. 参数说明:
  35. fromDegrees:旋转的开始角度。
  36. toDegrees:旋转的结束角度。
  37. pivotXType:X轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。
  38. pivotXValue:X坐标的伸缩值。
  39. pivotYType:Y轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。
  40. pivotYValue:Y坐标的伸缩值
  41. */
  42. RotateAnimation ra = new RotateAnimation(currentDegree, -degree,
  43. Animation.RELATIVE_TO_SELF, 0.5f,
  44. Animation.RELATIVE_TO_SELF, 0.5f);
  45. //旋转过程持续时间
  46. ra.setDuration(200);
  47. //罗盘图片使用旋转动画
  48. imageView.startAnimation(ra);
  49. currentDegree = -degree;
  50. }
  51. }
  52. //传感器精度的改变
  53. public void onAccuracyChanged(Sensor sensor, int accuracy) {
  54. }
  55. }

Android 电子罗盘--指南针(方向传感器的应用)相关推荐

  1. Android 电子罗盘 --指南针(方向传感器的应用)

    ,图片神马的在网上搜个指南针图片就好了,本来没有注释,发上来之后感觉不行,还是加上吧,方便学习 main.xml <?xml version="1.0" encoding=& ...

  2. Android实例-OrientationSensor方向传感器(XE8+小米2)

    相关资料: <修复 XE8 for Android 方向传感器 headingX,Y,Z 不会动的问题>:http://www.cnblogs.com/onechen/p/4497282. ...

  3. android系统重力感应传感器 方向控制与方向切换,android sensor orientation 方向传感器 重力感应...

    首先,获取方向传感器(参照http://developer.android.com/reference/android/hardware/SensorManager.html): publicclas ...

  4. Android传感器之-方向传感器Orientation功能实现与源码

    先明确一下空间坐标系的三个方向: x 方向就是手机的水平方向,右为正: y 方向就是手机的水平垂直方向,前为正: z 方向就是手机的空间垂直方向,天空的方向为正,地球的方向为负. 方向角的定义是手机y ...

  5. Android 传感器之方向传感器

    一般情况下,在android系统中获取手机的方位信息在api中有TYPE_ORIENTATION常量,可以像得到加速度传感器那样得到方向传感器sm.getDefaultSensor(Sensor.TY ...

  6. Android -- 传感器使用示例, 用方向传感器做指南针

    1. 传感器类型:方向.加速度(重力).光线.磁场.距离(临近性).温度等. 方向传感器:   Sensor.TYPE_ORIENTATION 加速度(重力)传感器: Sensor.TYPE_ACCE ...

  7. Android 方向传感器与磁力计和加速度传感器之间的关系

    一般情况下,在android系统中获取手机的方位信息azimuth似乎是很简单的事情,在api中有TYPE_ORIENTATION常量,可以像得到加速度传感器那样得到方向传感器sm.getDefaul ...

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

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

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

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

最新文章

  1. 从人肉到智能,阿里运维体系经历了哪些变迁?
  2. 2012年iOS开发人员必看的精品资料(100个)
  3. Linux学习第三步(Centos7安装mysql5.7数据库)
  4. 什么是WebSocket,以及如何在Python中使用它?
  5. nginx基础概念(100%)之keepalive
  6. Q96:PT(3.3):大理石纹理(Marble Texture)
  7. 基于SAP HANA 的SAP系统 安装
  8. 关于sockaddr_in 、WSAData 、sockaddr等未定义的问题
  9. SAP 特殊字符的处理CL_ABAP_CHAR_UTILITIES(去除多余的换行符、换页符、Tab符)
  10. 开放式社区?太小儿科了,智慧城市才是重点
  11. 华为芯片鸿蒙的由来,华为“鸿蒙”真的来了!看完这些商标来历,网友们又激动了...
  12. /usr/bin/env: ‘node’: Input/output error
  13. java相关的外文文献及翻译_外文文献及翻译:JavaandtheInternet
  14. verilog练习:hdlbits网站上的做题笔记(5)
  15. 高中英语教师资格证考试经验贴
  16. 通过‘PyQt6‘中的QWidget类创建一个含有按钮的窗口 1
  17. 百度SEO站群素材资源解析平台系统源码V8.0
  18. 计算机类对身体要求,旅游管理专业对身体条件的要求
  19. “让专业的人做专业的事”,畅捷通与阿里云的云原生故事
  20. python外国大神有哪些_国外Python大牛们用什么互相沟通、聊天?

热门文章

  1. exit在python中是什么意思_Python中exit()和sys.exit()之间的区别
  2. 分离扫描文档方法(1) —— Dynamic Web TWAIN:如何使用空白页作为扫描文档的分隔器
  3. 贷前审查和贷中审查_大技术受到审查
  4. Vaa3D_SD、SSD指标的来源
  5. 击碎数据标注五大误解,这门生意真不是你想象的“富士康” | 钛媒体深度
  6. HUSTOJ使用指南
  7. 2019 校招多益网络软件开发java 笔试题
  8. Radmin通过互联网联机
  9. 高效工作方式方法的一些实施建议TIPS
  10. 微信扫描二维码无法下载app如何解决