偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

31天學會Windows Phone 7開發(fā):加速感應(yīng)器

移動開發(fā)
本文是《Windows Phone 7開發(fā)31日談》系列的第十一篇文章,上一篇,我們討論了Windows Phone的軟鍵盤。本文,來談?wù)劵谟布募铀俑袘?yīng)器以及如何利用它提供的信息。

上一篇,我們討論了Windows Phone的軟鍵盤。本文,來談?wù)劵谟布募铀俑袘?yīng)器以及如何利用它提供的信息。

什么是加速感應(yīng)器?

目前缺乏一個更好的定義,Windows Phone設(shè)備中的加速度感應(yīng)器是用來度量3個坐標軸加速度的裝置,這里說的加速度是相對于自由落體加速度的。除了一個時間戳之外,值都是用重力值(G)表示的(1G = 9.81 m/s2)。這意味著如果將電話正面朝上平放在一個絕對的平面上,Z軸應(yīng)該為-1.0,其他兩個軸的數(shù)據(jù)為0。下面的圖例演示了不同的值(感謝的來自于WindowsTeamBlog的圖片):

加速感應(yīng)器

如何從WP7的加速感應(yīng)器中獲取數(shù)據(jù)?

幸好,這非常簡單。復雜的是我們需要管理一些線程,但其實也很簡單。下面是我們所要做的:

1.初始化一個Accelerometer對象。

2.創(chuàng)建一個ReadingChanged()事件處理程序來監(jiān)視數(shù)據(jù)的變化。

3.將事件中的結(jié)果傳回我們的頁面線程(這個事件是在另一個線程中觸發(fā)的)。

4.在程序中使用這些數(shù)據(jù)。

這是我這個例子中MainPage.xaml.cs的全部內(nèi)容。你會看到我在MainPage.xaml文件中創(chuàng)建了3個TextBlock(XText, YText和ZText) ,所以我可以在屏幕中顯示這些值。同樣還可以看到我添加了一個Microsoft.Devices.Sensors名稱空間的引用來訪問Accelerometer類。

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Net;  
  5. using System.Windows;  
  6. using System.Windows.Controls;  
  7. using System.Windows.Documents;  
  8. using System.Windows.Input;  
  9. using System.Windows.Media;  
  10. using System.Windows.Media.Animation;  
  11. using System.Windows.Shapes;  
  12. using Microsoft.Phone.Controls;  
  13. using Microsoft.Devices.Sensors;  
  14.  
  15. namespace Day11_Accelerometer  
  16. {  
  17.  public partial class MainPage : PhoneApplicationPage  
  18.  {  
  19.   Accelerometer acc = new Accelerometer();  
  20.  
  21.   // Constructor  
  22.   public MainPage()  
  23.   {  
  24.    InitializeComponent();  
  25.    acc.ReadingChanged += new EventHandler<AccelerometerReadingEventArgs>(acc_ReadingChanged);  
  26.    acc.Start();  
  27.   }  
  28.  
  29.   void acc_ReadingChanged(object sender, AccelerometerReadingEventArgs e)  
  30.   {  
  31.    Deployment.Current.Dispatcher.BeginInvoke(() => ThreadSafeAccelerometerChanged(e));  
  32.   }  
  33.  
  34.   void ThreadSafeAccelerometerChanged(AccelerometerReadingEventArgs e)  
  35.   {  
  36.    XText.Text = e.X.ToString("0.000");  
  37.    YText.Text = e.Y.ToString("0.000");  
  38.    ZText.Text = e.Z.ToString("0.000");  
  39.   }  
  40.  }  

 

模擬器不能模擬加速感應(yīng)器的數(shù)據(jù)

是的。如果你下載了本文***的代碼,肯定會納悶為什么Z軸數(shù)據(jù)總是-1呢,這是因為模擬器認為它是在平面上的。它沒有(有效的)方法來模擬加速感應(yīng)器的數(shù)據(jù)。但是有一些聰明人找到了讓這成為現(xiàn)實的方法。本篇文章剩下的部分讓我很為難。我很想給每個模擬器解決方案寫一個例子,但是還有這么多好的方法來模擬加速感應(yīng)器數(shù)據(jù),我認為讓你們知道這些比僅僅寫代碼示例要好。這有很多建議供你去實驗(每個站點都提供了代碼示例):

Reactive Extensions

Reactive Extensions是一個框架允許你為加速感應(yīng)器(還有位置服務(wù),我會在第13日中介紹)模擬數(shù)據(jù)而無需真實設(shè)備。實際上你無法控制這個動作,它只能給你產(chǎn)生隨機數(shù)據(jù)。安裝起來非常簡單,而且相比于因為沒有真實的手機而不能開發(fā)來說十分地高效。

accelKit

這個可能是最酷的選擇了。它利用攝像頭和增強現(xiàn)實,允許你移動手機的打印圖就像在真實世界中移動它一樣。它是如此的酷以至于使我神魂顛倒,有兩點原因:

1.它允許你真正地模擬動作。

2.它利用了增強現(xiàn)實,人。這是一個了不起的技術(shù)應(yīng)用。

WiimoteLib

這個庫不僅僅能用于Windows Phone模擬器,不過它確實可以為我們的目的非常好的工作。故事是這樣的:如果你有一個任天堂的Wii,你可以用控制器(一個Wii遙控器)來生成你的加速感應(yīng)器數(shù)據(jù)。

Windows Mobile Unified Sensor API

是的,就是“Windows Mobile”。這是在某些類型的Windows Mobile 6.x 設(shè)備上與加速感應(yīng)器交互的方式。這篇文章描述了一種利用這種技術(shù)在Windows Phone上開發(fā)的方法。他們好像沒有提供代碼示例,但看起來非常簡單。

下載代碼示例

原作者:Jeff Blankenburg    譯者:金山崟霸

中文來源:http://www.cnblogs.com/porscheyin/archive/2010/12/22/1914215.html

英文來源:http://www.jeffblankenburg.com/2010/10/11/31-days-of-windows-phone-day-11-accelerometer/

【編輯推薦】

  1. 31天學會Windows Phone 7開發(fā):輸入范圍和文本框
  2. 31天學會Windows Phone 7開發(fā):調(diào)試技巧
  3. 31天學會Windows Phone 7開發(fā):選擇器
  4. 31天學會Windows Phone 7開發(fā):啟動器
  5. 31天學會Windows Phone 7開發(fā):工具欄
責任編輯:王曉東 來源: 博客
相關(guān)推薦

2012-06-20 10:21:50

Windows Pho

2012-06-21 10:59:31

Windows Pho

2012-06-13 13:01:57

Windows Pho

2012-08-02 10:16:39

Windows Pho

2012-06-06 13:48:34

Windows Pho

2012-06-11 13:08:10

Windows Pho

2012-08-01 10:26:33

Windows Pho

2012-08-09 13:39:22

Windows Pho

2012-08-16 11:31:30

Windows Pho

2012-06-12 10:43:20

Windows Pho

2012-08-13 09:56:45

Windows Pho

2012-06-25 16:14:26

Windows Pho

2012-06-07 09:33:13

Windows Pho

2012-06-19 09:31:53

Windows Pho

2012-07-13 14:41:12

2012-07-24 10:15:34

Windows Pho

2012-07-31 09:44:27

Windows Pho

2012-06-29 14:13:10

2013-04-19 16:52:24

Windows PhoWindows Pho

2013-07-30 11:18:37

Windows PhoWindows Pho
點贊
收藏

51CTO技術(shù)棧公眾號