概要

主要讲一些程序开始时会有一个欢迎界面,不进行任何操作过一段时间之后会自己消失,还有就是简要介绍一些android的传感器,它们很有用,比如可以制作水平仪(和一些体感游戏)指南针,甚至有的手机支持温度和大气压强

效果

有人会问了:你这个怎么什么都没有,是不是骗人的=w=,因为虚拟机不支持传感器所以什么都没有,发一张我的手机上的截图吧
这里主要说一下方向传感器,其他的很好就试出来了,比如光强你可以打开灯和关上灯来测试,方向传感器的话,我们知道手机是一个长方体,有三个方向互相垂直的面,分别沿这三个面旋转就会看到数值的变化,最后当指向北时三个值都会为零

知识点整理

1.其实所谓的闪屏就是一个计时器计时,规定几秒之后跳转
2.传感器收手机自带的功能,我们使用接口就可以了
3.Activity的生命周期,这里会涉及到,如有不明白的同学可以看这篇博文,前人之述备矣,就不再赘述了
http://blog.csdn.net/liuhe688/article/details/6733407

DEMO

为了防止文章又臭又长就只发关键代码了~
首先界面不用说,没有什么特别的地方,我们来看一下主界面的activity是如何实现计时跳转的
package com.example.administrator.lyfs;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Window;import java.util.Timer;
import java.util.TimerTask;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);final Intent main = new Intent(this,MainChoice.class);Timer timer = new Timer();TimerTask timertask = new TimerTask() {@Overridepublic void run() {startActivity(main);MainActivity.this.finish();}};timer.schedule(timertask,1000*3);}}

就是使用timer来实现这个功能的,代码简单看上去又高端大气~

第二个界面只有一个按钮,跳转到第三个界面,因为第二个界面以后要做其他东西
第三个界面的java代码如下
package com.example.administrator.lyfs;import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.TextView;/*** Created by Administrator on 2015/7/18.*/
public class SensorTest extends Activity implements SensorEventListener{private SensorManager mSensorManger;TextView firstOne;TextView firstTwo;TextView firstThree;TextView secondOne;TextView secondTwo;TextView secondThree;TextView ThirdOne;TextView ForthOne;TextView FifthOne;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activirty_sensor_test);firstOne = (TextView)findViewById(R.id.first_first);firstTwo = (TextView)findViewById(R.id.first_second);firstThree = (TextView)findViewById(R.id.first_third);secondOne = (TextView)findViewById(R.id.second_first);secondTwo = (TextView)findViewById(R.id.second_second);secondThree = (TextView)findViewById(R.id.second_third);ThirdOne = (TextView)findViewById(R.id.third_first);ForthOne = (TextView)findViewById(R.id.forth_first);FifthOne = (TextView)findViewById(R.id.fifth_first);mSensorManger = (SensorManager)getSystemService(SENSOR_SERVICE);}@Overrideprotected void onResume(){super.onResume();mSensorManger.registerListener(this,mSensorManger.getDefaultSensor(Sensor.TYPE_ORIENTATION),SensorManager.SENSOR_DELAY_GAME);mSensorManger.registerListener(this,mSensorManger.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),SensorManager.SENSOR_DELAY_GAME);mSensorManger.registerListener(this,mSensorManger.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE),SensorManager.SENSOR_DELAY_GAME);mSensorManger.registerListener(this,mSensorManger.getDefaultSensor(Sensor.TYPE_LIGHT),SensorManager.SENSOR_DELAY_GAME);mSensorManger.registerListener(this,mSensorManger.getDefaultSensor(Sensor.TYPE_PRESSURE),SensorManager.SENSOR_DELAY_GAME);}@Overrideprotected void onStop(){mSensorManger.unregisterListener(this);super.onStop();}@Overrideprotected void onPause(){mSensorManger.unregisterListener(this);super.onPause();}@Overridepublic void onAccuracyChanged(Sensor sensor,int accuracy){}@Overridepublic void onSensorChanged(SensorEvent event){float[] values = event.values;int senseorType = event.sensor.getType();switch (senseorType){case Sensor.TYPE_ORIENTATION:firstOne.setText(""+values[0]);firstTwo.setText(""+values[1]);firstThree.setText(""+values[2]);break;case Sensor.TYPE_MAGNETIC_FIELD:secondOne.setText(""+values[0]);secondTwo.setText(""+values[1]);secondThree.setText(""+values[2]);break;case Sensor.TYPE_AMBIENT_TEMPERATURE:ThirdOne.setText(""+values[0]);break;case Sensor.TYPE_LIGHT:ForthOne.setText(""+values[0]);break;case Sensor.TYPE_PRESSURE:FifthOne.setText(""+values[0]);break;}}}

我们是通过activity实现SensorEventListener接口来实现的,这个接口需要重载两个方法

1.public void onAccuracyChanged(Sensor sensor,int accuracy) 当精度变化时调用这个函数
2.public void onSensorChanged(SensorEvent event)当传感器感应数值变化时调用
总的来说我们在Activity中做了这几件事
0.实现SensorEventListener接口
1.获得布局文件里的TextView用来显示数值
2.我们需要一个sensorManager来管理传感器
3.在onResume里注册传感器
4.在onPause和onStop里注销传感器(为了节省资源)
5.在onSensorChanged里面通过事件(event) 获得相关数据(value)然后通过传感器种类确定相应的显示数值

感想

这就是手机传感器的功能,一般的手机可能没有温度和压力传感器,一共有11个传感器
1.加速度传感器 Sensor.TYPE_ACCELEROMETER:
2.磁场传感器 Sensor.TYPE_MAGNETIC_FIELD:#
3.陀螺仪感应器 Sensor.TYPE_GYROSCOPE:
4.光线传感器 Sensor.TYPE_LIGHT:#
5.距离感应器Sensor.TYPE_PROXIMITY: 
6.重力传感器Sensor.TYPE_GRAVITY:
7.线性加速传感器Sensor.TYPE_LINEAR_ACCELERATION:
8.旋转向量传感器Sensor.TYPE_ROTATION_VECTOR:
9.方向传感器:Sensor.TYPE_ORIENTATION:#
10.温度传感器Sensor.TYPE_TEMPERATURE:#
11.压力传感器,Sensor.TYPE_PRESSURE#
画#的是我们用过的,不过用法大同小异,大家可以试试,知道了这些物理事件可大有干头,我们以后也会用其他的传感器做些东西,敬请期待~

每日一句

真正的爱情不是一时好感,而是明明知道没结果,还想要坚持下去的冲动

程序运行闪图界面以及传感器相关推荐

  1. Visual C++ 2010如何解决程序运行闪退问题

    Visual C++ 2010如何解决程序运行闪退问题 使用Visual C++调试C语言控制台程序,一直出现程序正常运行结束就闪退,看不到控制台的的运行结果,有以下几种解决方法: 1.在return ...

  2. 一个java小程序运行结果图_编写以下程序,并上传源代码和运行结果截图,附件中上传java源程序。...

    [填空题]向慈善组织捐款 [简答题]你的组员.岗位.团队名.口号是什么? [单选题]被称为"生命中枢"的脑组织是( ). [单选题]已知偶函数 的图象经过 ,则函数的图象必经过另一 ...

  3. pb 制作程序运行报错界面

    一.运行程序时报错提示 1> 在应该程式里的systemerror[]returns(none)    如下代码: if err_sys=1 then  err_sys=0  return el ...

  4. MFC修改界面图标时,已导入.ico文件,但是程序运行后,界面不显示更新后的新图标

    问题解决思路: 1.查看"资源视图"-->"Icon"下是否成功导入.ico图标文件: 2.单击导入的".ico"文件名,查看对应属性 ...

  5. java程序运行图形_java编程 要用到继承的方法图形计算器项目: 实现一个图形计算器,程序运行后显示界面:请选择图形: 1 圆 2 矩形...

    共回答了12个问题采纳率:91.7% 代码如下.输入参数和计算结果都为整数.具体类型请自行修改.import java.util.Scanner; public class Test { public ...

  6. java程序员的浪漫代码_专属于程序员的浪漫-Java输出动态闪图iloveyou

    代码测试可用,运行结果非常辣眼睛,有种二十一世纪初流行于广大中小学生之间的失落非主流的感觉! 还是比较有参考价值的,获取当前日期时间,日期类格式化,图形界面的开发等. java awt实现小程序动态闪 ...

  7. i love java怎么写编程_专属于程序员的浪漫-Java输出动态闪图iloveyou

    代码测试可用使用的,运行结果非常辣眼睛,有种二十一世纪初流行于广大中小学生之间的失落非主流的感觉! 还是比较有参考网上卖的,获取当前日期时间,日期类格式化,图形界面的开发等. java awt实现小程 ...

  8. W7程序计算机面板介绍,win7系统隐藏任意程序运行界面的详细步骤

    win7系统使用久了,好多网友反馈说win7系统隐藏任意程序运行界面的问题,非常不方便.有什么办法可以永久解决win7系统隐藏任意程序运行界面的问题,面对win7系统隐藏任意程序运行界面的图文步骤非常 ...

  9. c语言 判断一个图是否全连通_C语言:程序运行流程图与顺序结构语句

    程序运行流程图 流程图是描述问题处理步骤的一种常用图形工具,它是由一些图框和流程线组成的.流程图描述问题的处理步骤,形象直观,便于阅读.画流程图时必须按照功能选用相应的流程图符号,常用的流程图符号如下 ...

最新文章

  1. linux结束打印机进程,Linux系统,如何知道哪个进程在打印log?
  2. python3.6.5下载-Python
  3. C++入门经典-例2.13-左移运算
  4. 覆盖索引与联合索引_浅析MySQL的索引覆盖和索引下推
  5. JAVA入门级教学之(文档里的is-a、is-like-a、has-a到底是什么意思)
  6. image.merge图像有什么变化_经常用到压缩软件的你,知道什么是无损压缩和有损压缩吗?...
  7. 最全中文深度学习入门书:小白易入,课程代码PPT全有 | 复旦邱锡鹏出品
  8. Objective-C基础笔记(7)Foundation中的常用结构体
  9. 如何注册、发布 CSDN博客
  10. web前端开发基础入门篇(一)
  11. 你能获得的数据量越大,你能挖掘到的价值就越多。
  12. 霜降|JEPaaS提醒您注意防寒保暖
  13. 商务统计_4 用图表演示数据 - 频数分布
  14. 苹果IOS企业开发者账号怎么申请——苹果账号申请记录(未完待续)
  15. 前端基础之CSS盒子模型
  16. RNNoise: Learning Noise Suppression(深度学习噪声抑制)(2)
  17. 建议各位站长网站404页面换成腾讯宝贝回家公益页面,为社会公益出一份力
  18. 2006年教育部对社会主义倒奶和资本主义倒奶的的标准回答
  19. 微服务架构之限流熔断
  20. Oracle用OEM和命令行方式创建用户及表空间

热门文章

  1. wp缩略图php,WordPress文章缩略图
  2. 作业7-2 求矩阵各行元素之和
  3. 二元函数图像生成器_谷歌程序员自制秃头生成器:一键get张东升同款发型,今天你脱发了吗?...
  4. 构建Polygon多边形的时候提示 -- Invalid number of points in LinearRing (found 3 - must be 0 or = 4)
  5. mysql winpcap_WinPcap 中文技术文档(4.1.2) 第三章
  6. Java键盘录入的三种方式
  7. Android学习-运用手机多媒体-通知使用技巧、调用摄像头拍照、从相册中选取照片、播放音频和视频文件(MediaPlayer、VideoView)
  8. 【Python】列表(一)之一目了然
  9. 关于拯救者Y7000充不上电的问题
  10. php提取bing背景,php获取Bing美图