码迷,mamicode.com
首页 > Windows程序 > 详细

Windows Phone 十八、加速计

时间:2015-06-26 01:42:04      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

加速度传感器

手机的加速度传感器工作时是通过 x、y、z 三个轴的偏移来计算的

在代码基本的 API 主要集中在 Accelerometer 类型中

主要是使用该类型的对象捕获 ReadingChanged 事件监视加速度值变化的

X、Y、Z 加速度传感值

1     <StackPanel>
2         <TextBox x:Name="txtX" Header="X:"/>
3         <TextBox x:Name="txtY" Header="Y:"/>
4         <TextBox x:Name="txtZ" Header="Z:"/>
5     </StackPanel>
 1         protected override void OnNavigatedTo(NavigationEventArgs e)
 2         {
 3             // 先拿到传感器对象
 4             Accelerometer a = Accelerometer.GetDefault();
 5             if (a == null)
 6             {
 7                 // 代表没有加速计传感器对象
 8                 System.Diagnostics.Debug.WriteLine("没有加速计传感器");
 9                 return;
10             }
11             a.ReadingChanged += a_ReadingChanged;
12             a.ReportInterval = a.MinimumReportInterval * 5;
13         }
14 
15         async void a_ReadingChanged(Accelerometer sender, AccelerometerReadingChangedEventArgs args)
16         {
17             System.Diagnostics.Debug.WriteLine(args + "改变了。。。");
18             // 拿到变化值
19             await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
20             {
21                 txtX.Text = args.Reading.AccelerationX.ToString();
22                 txtY.Text = args.Reading.AccelerationY.ToString();
23                 txtZ.Text = args.Reading.AccelerationZ.ToString();
24             });
25         }

平衡检测

1     <Grid>
2 
3         <Path Data="M180.348,341.493 L144.279,392.488 L162.935,391.244 L161.692,630.05 L200.249,630.05 L196.517,392.488 L216.418,393.731 z" Fill="#FF6AEA00" HorizontalAlignment="Center" Height="289.557" Stretch="Fill" Stroke="Black" UseLayoutRounding="False" VerticalAlignment="Bottom" Width="73.139" RenderTransformOrigin="0.5,1">
4             <Path.RenderTransform>
5                 <CompositeTransform x:Name="rotate" Rotation="0"/>
6             </Path.RenderTransform>
7         </Path>
8 
9     </Grid>
 1         protected override void OnNavigatedTo(NavigationEventArgs e)
 2         {
 3             DisplayInformation.AutoRotationPreferences = DisplayOrientations.Landscape;
 4             // 先拿到传感器对象
 5             Accelerometer a = Accelerometer.GetDefault();
 6             if (a == null)
 7             {
 8                 // 代表没有加速计传感器对象
 9                 System.Diagnostics.Debug.WriteLine("没有加速计传感器");
10                 return;
11             }
12             a.ReadingChanged += a_ReadingChanged;
13             a.ReportInterval = a.MinimumReportInterval * 10;
14         }
15 
16         async void a_ReadingChanged(Accelerometer sender, AccelerometerReadingChangedEventArgs args)
17         {
18             System.Diagnostics.Debug.WriteLine(args + "改变了。。。");
19             // 拿到变化值
20             await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
21             {
22                 rotate.Rotation = args.Reading.AccelerationY * 90;
23             });
24         }

 

Windows Phone 十八、加速计

标签:

原文地址:http://www.cnblogs.com/includeling/p/4601351.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!