光线传感器演示1



       讲了一大堆的理论,那么以下的样例就来展示一下光线感应器的使用.为什么充分展现光感的用法,我这个样例写的很easy,仅仅写了使用光感必须的代码,然后用了几个textView将光线变化的值展现到用户界面。让使用者能够随时的看到光度的变化。

以下是Activity的代码:

java代码:

  1. public class LightDemoActivity extends Activity implements SensorEventListener{
  2. /** Called when the activity is first created. */
  3. SensorManager sensorManager = null;//传感器管理器引用
  4. Sensor lightSensor = null;//光线传感器引用
  5. //各个文本的引用
  6. TextView accuracy_view= null;
  7. TextView value_0 = null;
  8. TextView value_1 = null;
  9. TextView value_2 = null;
  10. @Override
  11. public void onCreate(Bundle savedInstanceState) {
  12. super.onCreate(savedInstanceState);
  13. setContentView(R.layout.main);
  14. //获得传感器管理器实例
  15. sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
  16. //获得光线传感器实例
  17. lightSensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
  18. //获得各个TextView
  19. accuracy_view = (TextView)findViewById(R.id.accuracy);
  20. value_0 = (TextView)findViewById(R.id.value_0);
  21. value_1 = (TextView)findViewById(R.id.value_1);
  22. value_2 = (TextView)findViewById(R.id.value_2);
  23. }
  24. @Override
  25. protected void onPause() {
  26. // TODO Auto-generated method stub
  27. super.onPause();
  28. //注销
  29. sensorManager.unregisterListener(this, lightSensor);
  30. }
  31. @Override
  32. protected void onResume() {
  33. // TODO Auto-generated method stub
  34. super.onResume();
  35. //为传感器管理器注冊监听
  36. sensorManager.registerListener(this,lightSensor, SensorManager.SENSOR_DELAY_NORMAL);
  37. }
  38. @Override
  39. public void onAccuracyChanged(Sensor sensor, int accuracy) {
  40. // TODO Auto-generated method stub
  41. if(sensor.getType() == Sensor.TYPE_LIGHT){
  42. //设置将accuracy的值显示到屏幕上
  43. accuracy_view.setText("accuracy:"+accuracy);
  44. }
  45. }
  46. @Override
  47. public void onSensorChanged(SensorEvent event) {
  48. // TODO Auto-generated method stub
  49. if(event.sensor.getType() == Sensor.TYPE_LIGHT){
  50. //将values的值显示到屏幕上
  51. float[] values = event.values;
  52. value_0.setText("value[0]:"+values[0]);
  53. value_1.setText("value[1]:"+values[1]);
  54. value_2.setText("value[2]:"+values[2]);
  55. }
  56. }
  57. }

复制代码

我们来看看解说的代码:



java代码:

  1. 以下解说代码:
  2. //获得传感器管理器实例
  3. sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
  4. //获得光线传感器实例
  5. lightSensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
  6. 这段代码的作用是获得感应器管理器引用,并获得光感感应器应用。
  7. protected void onResume() {
  8. // TODO Auto-generated method stub
  9. super.onResume();
  10. //为传感器管理器注冊监听
  11. sensorManager
  12. .registerListener(this,lightSensor, SensorManager.SENSOR_DELAY_NORMAL);
  13. }
  14. 这段代码的作用在resume的时候又一次注冊监听,开启光感
  15. protected void onPause() {
  16. // TODO Auto-generated method stub
  17. super.onPause();
  18. //注销
  19. sensorManager.unregisterListener(this, lightSensor);
  20. }
  21. 这段代码的作用是在暂停时注销监听,关闭光感。由于感应器耗电,所以在不用的时候应该关闭他
  22. if(event.sensor.getType() == Sensor.TYPE_LIGHT)
  23. {
  24. //将values的值显示到屏幕上
  25. float[] values = event.values;
  26. value_0.setText("value[0]:"+values[0]);
  27. value_1.setText("value[1]:"+values[1]);
  28. value_2.setText("value[2]:"+values[2]);
  29. }
  30. }

复制代码

Android 深入解析光传感器(二)的更多相关文章

  1. Android内存解析(二)— 详解内存,内部存储和外部存储

    总述 觉得十分有必要搞清楚内存,内部存储和外部存储的区别,还有我们在开发中真正将数据存在了手机的哪儿. 先提一个问题:手机设置的应用管理中,每个App下都有清除数据和清除缓存,清除的分别是哪里的数据? ...

  2. Android Intent 解析之二

    服务端Intent运行过程: Sticky:这个类型的BroadCast表示某些Intent须要被保留,当新的应用起来后,须要关注这个消息,可是呢,又不须要启动这个应用来接收此消息,比方耳机插入等消息 ...

  3. Android zxing 解析二维码,生成二维码极简demo

    zxing 官方的代码很多,看起来很费劲,此demo只抽取了有用的部分,实现了相机预览解码,解析本地二维码,生成二维码三个功能. 简化后的结构如下: 废话少说直接上代码: BaseDecodeHand ...

  4. Android Animation学习(二) ApiDemos解析:基本Animators使用

    Android Animation学习(二) ApiDemos解析:基本Animatiors使用 Animator类提供了创建动画的基本结构,但是一般使用的是它的子类: ValueAnimator.O ...

  5. Android数字签名解析(二)

    在Android数字签名解析(一)中,介绍了android进行签名的两种方式,当中用密钥对进行签名用到了signapk.jar这个java库. 以下我们就看看signapk签名实现过程,signapk ...

  6. android XMl 解析神奇xstream 二: 把对象转换成xml

    前言:对xstream不理解的请看:android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 1.Javabeen 代码 packa ...

  7. android XMl 解析神奇xstream 六: 把集合list 转化为 XML文档

    前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...

  8. android XMl 解析神奇xstream 五: 把复杂对象转换成 xml ,并写入SD卡中的xml文件

    前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...

  9. android XMl 解析神奇xstream 四: 将复杂的xml文件解析为对象

    前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...

随机推荐

  1. Ctrl-A全选

    Ctrl-A全选这点事(C#,WinForm)   所有的文本框,不管单行多行都Ctrl-A全选就好了吧?是啊,很方便.Windows的软件基本都是这样.可为什么我们自己制作的WinForm就默认不是 ...

  2. 在Windows通过使用MinGW静态编译Assimp

    使用MinGW静态编译Assimp 到了5月份了.没有写一篇日志,于是自己从知识库里面拿出一篇文章充数吧.这次将要解说怎样在Windows下使用MinGW静态编译Assimp. Assimp是眼下比較 ...

  3. SSDTHook实例--编写稳定的Hook过滤函数

    解说怎样写Hook过滤函数,比方NewZwOpenProcess.打开进程. 非常多游戏保护都会对这个函数进行Hook. 因为我们没有游戏保护的代码,无法得知游戏公司是怎样编写这个过滤函数. 我看到非 ...

  4. poj3206(bfs+最小生成树)

    传送门:Borg Maze 题意:有一个迷宫,里面有一些外星人,外星人用字母A表示,#表示墙,不能走,空格可以走,从S点出发,在起点S和A处可以分叉走,问找到所有的外星人的最短路径是多少? 分析:分别 ...

  5. hdu 4710 Balls Rearrangement (数学思维)

    意甲冠军:那是,  从数0-n小球进入相应的i%a箱号.然后买一个新的盒子. 今天的总合伙人b一个盒子,Bob试图把球i%b箱号. 求复位的最小成本. 每次移动的花费为y - x ,即移动前后盒子编号 ...

  6. java总结,错误集

    java中abstract怎么使用 abstract(抽象)修饰符,可以修饰类和方法 1,abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就 ...

  7. 阿尔贝我给我加i觉

    http://www.huihui.cn/share/8192186       http://www.huihui.cn/share/8192178       http://www.huihui. ...

  8. 【转向Javascript系列】从setTimeout说事件循环模型

    本文首发在alloyteam团队博客,链接地址http://www.alloyteam.com/2015/10/turning-to-javascript-series-from-settimeout ...

  9. android maven eclipse里面新建mavenprojectThe desired archetype does not exist

    这个问题头疼死我了 又一次配置下你看我的教程 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbmFpbmkxMTk=/font/5a6L5L2T/f ...

  10. Cracking the coding interview--问题与解答

    http://www.hawstein.com/posts/ctci-solutions-contents.html 作者:Hawstein出处:http://hawstein.com/posts/c ...