Android方向传感器简单实用
来源:互联网 发布:720全景制作软件 编辑:程序博客网 时间:2024/05/22 07:47
传感器
传感器(英文名称:sensor)是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。
传感器的特点包括:微型化、数字化、智能化、多功能化、系统化、网络化。它是实现自动检测和自动控制的首要环节。传感器的存在和发展,让物体有了触觉、味觉和嗅觉等感官,让物体慢慢变得活了起来。通常根据其基本感知功能分为热敏元件、光敏元件、气敏元件、力敏元件、磁敏元件、湿敏元件、声敏元件、放射线敏感元件、色敏元件和味敏元件等十大类。
Android中常见的传感器
粗糙指南针
public class CompassView extends View { private Paint paint = new Paint(); private Path path; private float angle; public CompassView(Context context) { super(context); // TODO Auto-generated constructor stub } public CompassView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } @Override protected void onDraw(Canvas canvas) { float centerX = getMeasuredWidth() / 2; float centerY = getMeasuredHeight() / 2; // 画文字 paint.reset(); paint.setAntiAlias(true); paint.setColor(Color.BLUE); paint.setTextSize(24); canvas.drawText("" + angle, 20, 20, paint); canvas.drawText("北", centerX, 30, paint); canvas.drawText("南", centerX, getMeasuredHeight() - 30, paint); canvas.drawText("西", 30, centerY, paint); canvas.drawText("东", getMeasuredWidth() - 30, centerY, paint); // 画箭头 if (path == null) { path = new Path(); float x1 = centerX; float y1 = centerY - 140; float x2 = centerX - 30; float y2 = centerY + 30; float x3 = centerX; float y3 = centerY + 10; float x4 = centerX + 30; float y4 = centerY + 30; path.moveTo(x1, y1);// 移动到起始点 path.lineTo(x2, y2);// 连线 path.lineTo(x3, y3);// 连线 path.lineTo(x4, y4);// 连线 path.lineTo(x1, y1);// 连线 path.close(); } canvas.save(); paint.reset(); paint.setAntiAlias(true); paint.setColor(Color.RED); canvas.rotate(angle, centerX, centerY); canvas.drawPath(path, paint); canvas.restore(); } public void setAngle(float angle) { this.angle = angle; invalidate(); }}
public class MainActivity extends Activity { private SensorManager manager; private Sensor sensor; private CompassView mCompassView; private SensorEventListener listener = new SensorEventListener() { @Override public void onSensorChanged(SensorEvent event) { // 数据改变的回调 float[] values = event.values;// 传感器给到的数据 // float light = values[0]; // System.out.println("light : " + light); // values[0]: Azimuth, angle between the magnetic north direction // and the y-axis, around the z-axis (0 to 359). 0=North, 90=East, // 180=South, 270=West float angle = values[0]; System.out.println("角度 : " + angle); mCompassView.setAngle(angle); } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { // 传感器的精度改变的回调 } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); manager = (SensorManager) getSystemService(SENSOR_SERVICE); // List<Sensor> list = manager.getSensorList(Sensor.TYPE_ALL); // for (Sensor sensor : list) { // // System.out.println("传感器:" + sensor.getName()); // } // rate : 采样的速率 sensor = manager.getDefaultSensor(Sensor.TYPE_ORIENTATION); mCompassView = (CompassView) findViewById(R.id.cv); } @Override protected void onResume() { super.onResume(); manager.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_NORMAL); } @Override protected void onPause() { super.onPause(); manager.unregisterListener(listener); }}
参考:
Android传感器
0 0
- Android方向传感器简单实用
- Android 方向传感器的简单使用
- Android 传感器之方向传感器
- Android 方向传感器
- android方向传感器
- Android方向传感器
- android 方向传感器
- Android笔记 方向传感器
- Android传感器坐标轴方向
- android 方向传感器应用
- Android:方向传感器
- Android方向传感器
- Android:方向传感器
- Android-传感器-方向
- Android方向传感器
- Android传感器——方向传感器TYPE_ORIENTATION
- Android开发传感器应用---获取方向传感器
- android 传感器使用与开发----方向传感器
- 贝叶斯公式(Bayes)的应用
- GDOI2017游记
- JavaScript学习-DOM扩展_HTML5
- 操作系统pv操作学习总结
- Tomcat Server.xml详解
- Android方向传感器简单实用
- Android NDK放弃GCC,全面转向Clang
- Python中获得当前目录和上级目录
- 排列组合与杨辉三角类比运算
- OSTaskCreateHook(),OSTaskDelHook(),OSTaskSwHook(),OSTaskStatHook()
- 单链表冒泡排序
- 【安卓开发艺术探索】第4章 View的测量、布局、绘制 笔记
- Disruptor复杂场景下使用RingBuffer
- 两个链表的第一个公共节点