简单的方向传感器SimpleOrientationSensor
SimpleOrientationSensor是一个简单的方向传感器。能够识别手机如下表的6种方向信息:
| SimpleOrientation枚举变量 | 方向 |
| NotRotated | 设备未旋转 |
| Rotated90DegreesCounterclockwise | 逆时针旋转 90 度 |
| Rotated180DegreesCounterclockwise | 逆时针旋转 180 度 |
| Rotated270DegreesCounterclockwise | 逆时针旋转 270 度 |
| Faceup | 将设备面朝上 |
| Facedown | 将设备面朝下 |
下面我们就来实现是否开打方向处理器并在各个不同状态下进行处理。
(一般的,我都是会将很多代码写在主函数里面,导致代码太臃肿,维护性差,现在我们将它封装起来吧。)
MainPage.xaml.cs:
<ToggleSwitch x:Name="toggleSwitch" Header="方向传感器" IsOn="{Binding IsOpen, Mode=TwoWay}"/>
OrtSensors.cs类:
/// <summary>
/// 自定义一个方向传感器类
/// </summary>
public class OrtSensors
{
public static SimpleOrientationSensor SimpleOrtSensor = SimpleOrientationSensor.GetDefault();//简单方向传感器 private bool isOpen; //是否打开 public bool IsOpen
{
set
{
if (value)
{
SimpleOrtSensor.OrientationChanged += SimpleOrtSensor_OrientationChanged;
}
else if (!value)
{
SimpleOrtSensor.OrientationChanged -= SimpleOrtSensor_OrientationChanged;
}
isOpen = value;
}
get
{
return isOpen;
}
} void SimpleOrtSensor_OrientationChanged(SimpleOrientationSensor sender,
SimpleOrientationSensorOrientationChangedEventArgs args)
{
switch (args.Orientation)
{
case SimpleOrientation.NotRotated:
Debug.WriteLine(args.Orientation.ToString()); //设备未旋转
break;
case SimpleOrientation.Rotated180DegreesCounterclockwise:
Debug.WriteLine(args.Orientation.ToString()); //逆时针180
break;
case SimpleOrientation.Rotated270DegreesCounterclockwise:
Debug.WriteLine(args.Orientation.ToString()); //逆时针270
break;
case SimpleOrientation.Rotated90DegreesCounterclockwise:
Debug.WriteLine(args.Orientation.ToString()); //逆时针90
break;
case SimpleOrientation.Facedown:
Debug.WriteLine(args.Orientation.ToString()); //面朝下
break;
case SimpleOrientation.Faceup:
Debug.WriteLine(args.Orientation.ToString()); //面朝上
break;
default:
break;
}
}
}
MainPage.cs:
//实例化并且设置绑定源
OrtSensors sensor = new OrtSensors();
public MainPage()
{
this.InitializeComponent(); this.NavigationCacheMode = NavigationCacheMode.Required;
toggleSwitch.DataContext = sensor;
}
简单的方向传感器SimpleOrientationSensor的更多相关文章
- UWP开发中的方向传感器
在UWP开发中,我们能使用的到方向有三种: OrientationSensor下的四元数:Compass罗盘的HeadingMagneticNorth:以及SimpleOrientationSenso ...
- Android 百度地图 SDK v3.0.0 (二) 定位与结合方向传感器
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37730469 在上一篇博客中,我们成功把地图导入了我们的项目.本篇我们准备为地图 ...
- web端手机方向传感器闲谈
因为工作需要,这段时间接触的手机传感器比较多.总体来说,市场上的传感器表现参差不齐.IPhone在传感器表现方面卓越,而安卓由于什么机型都有,则显得差强人意. 首先还是说说怎么在web端调用手机传感器 ...
- 修复 XE8 for Android 方向传感器 headingX,Y,Z 不会动的问题
问题:XE8 for Android 方向传感器无法正常运作(在 XE7 是正常的) 测试:官方示例 Samples\Object Pascal\Mobile Snippets\Orientation ...
- Android实例-OrientationSensor方向传感器(XE8+小米2)
相关资料: <修复 XE8 for Android 方向传感器 headingX,Y,Z 不会动的问题>:http://www.cnblogs.com/onechen/p/4497282. ...
- Android 方向传感器
一般情况下,在Android系统中获取手机的方位信息在api中有TYPE_ORIENTATION常量,可以像得到加速度传感器那样得到方向传感器sm.getDefaultSensor(Sensor.TY ...
- Android利用方向传感器获得手机的相对角度实例说明
http://www.jb51.net/article/37710.htm 1.android 的坐标系是如何定义x, y z 轴的 x轴的方向是沿着屏幕的水平方向从左向右,如果手机不是正方形的话,较 ...
- 关于android方向传感器的使用
Android2.2以后 orientation sensors 就被deprecated了 官方建议用acceleration and magnetic sensor 来算 关于这个问题,CSDN上 ...
- Android百度地图(二)结合方向传感器我们自己定位哪里走
Android百度地图(二)结合方向传感器我们自己定位哪里走 本文代码在http://blog.csdn.net/xyzz609/article/details/51943556的基础上进一步改动.有 ...
随机推荐
- PKCS#1规范阅读笔记1--------基本概念
规范中有很多数学相关的推演和计算,并不打算在这里介绍,主要介绍一下相关的计算流程及最终的签名结果. 算法可以分为:对称算法和非对称算法两大类.对称算法加密和解密都用的是同一个密钥:而非对称算法却是有一 ...
- 自己第一个github开源的感受
自己在github上发布了开源<基于IOS的手机视频直播SDK>后,不到一个月,被人star了508次,fork了120次,这个成绩大大出乎了我自己的意料! github网址:https: ...
- Linux终端打印命令使用介绍
常用linux打印命令 日常使用中或shell脚本中linux终端打印命令有echo和printf. echo命令 功能说明:显示文字.语 法:echo [-ne][字符串]或 echo [--he ...
- WIN7下django1.8下载安装
前言:公司电脑上django是在pycharm上下载自动安装的,家里电脑没安pycharm,所以自己手动安装. django下载地址:https://www.djangoproject.com/dow ...
- 第一个JAVA应用
1.1创建源文件 1.1.1Java源文件结构 Java应用由一个或多个扩展名为“.Java”的文件构成,这些文件被成为源文件.从编译角度,则被称为编译单元(Compilation Unit). 如果 ...
- BZOJ3223: Tyvj 1729 文艺平衡树 [splay]
3223: Tyvj 1729 文艺平衡树 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3595 Solved: 2029[Submit][Sta ...
- UVA10048 Audiophobia[Floyd变形]
UVA - 10048 Audiophobia Consider yourself lucky! Consider yourself lucky to be still breathing and h ...
- Hibernate 错题分析
- XCodeo如何去除多余的模拟器---学习笔记七
首先退出Xcode并且关闭模拟器: 然后在终端(Terminal)输入如下2行命令: sudo killall -9 com.apple.CoreSimulator.CoreSimulatorServ ...
- alexkn android第一行代码-7.广播
0.Android 中的广播主要可以分为两种类型,标准广播和有序广播.标准广播(Normal broadcasts)是一种完全异步执行的广播,在广播发出之后,所有的 广播接收器几乎都会在同一时刻接收到 ...