成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

【WP開發】實現“搖一搖”功能

移動開發
盡管我的微信是每八個月登錄一次,但我相信各位玩得比我多。微信有一個“搖一搖”功能,這個功能其實是利用了加速度傳感器來實現的,這個傳感器,我估計再低端的手機都會有的,這是嚴重基本的傳感器。

盡管我的微信是每八個月登錄一次,但我相信各位玩得比我多。微信有一個“搖一搖”功能,這個功能其實是利用了加速度傳感器來實現的,這個傳感器,我估計再低端的手機都會有的,這是嚴重基本的傳感器。

重力加速度既可以用于判斷手機當前所放置的方向,也可以用來檢測運動方向,當用戶甩手機時就會產生運動加速度。

位于Windows.Devices.Sensors命名空間下的Accelerometer類封裝了重力加速器相關的操作,“搖一搖”可以判斷手機在X,Y,Z三個方向上的加速度來實現,甩手機時比較激動,因此,X,Y,Z三個值的絕對值都會大于1,用力甩的話可以達到1.7,1.8左右,不知道能不能達到2,反正我沒試過,高空墜落時可能會有,有興趣的朋友可以從樓頂把手機扔下去試試。

對于使用傳感器時的坐標系,使用的設備坐標,不論是哪個傳感器,設備坐標的位置和方向是一樣的,這里我畫了一個草圖,不是十分準確,但我相信初中生都能看懂。

[[120978]]

箭頭所指的方向是正方向,相反的方向就是負方向。

有了以上的思想準備,估計你都知道怎么做了,原理是分別讀取X,Y,Z三軸上的數據,然后判斷它們的值,如果值較大,說明手機正在“激情”中,即用戶在甩動手機。

不僅是“搖一搖”,使用這個,還可以做音樂播放器的切歌操作。比如,向左甩播放上一首歌,向右甩播下一首歌。左右甩動只需判斷X軸上的值即可,舉個 例子,當X軸上的值小于-1.6時,可以認為用戶正在拼命向左甩動;如果大于1.6表明用戶把手機向右甩。同理,向上甩動Y軸的值為正值,值越大;向下甩 則Y軸上的值為負,值越小;把手機屏幕對著天空用力拋的時候,Z軸上的值為正,值越來越大;反之越來越小。

先給大家講講例子,我這個例子不復雜,就是先準備好10張MM的靚照,當手機被甩時,從10張照片中隨機抽出一張來顯示。

Accelerometer類本來有一個Shaken事件,當甩手機時發生,但這個事件目前只在平板電腦上引發,在手機上不會發生。畢竟RT的API沒有完全移植。雖然不引發該事件,不過我們可以通過加速器的讀數自己來判斷。

首先,獲取加速器的實例。

  1. Accelerometer acc = null
  2.         ........ 
  3.  
  4.         acc = Accelerometer.GetDefault(); 

很簡單,一個GetDefault就能返回相關的實例。然后,設置一下報告實時數據的時間間隔,因為甩動的話,不需要過于精確,我這里選擇200毫秒報告一次,也不必須太快。

  1. acc.ReportInterval = 200

接著,處理當前程序窗口的VisibilityChanged事件,當窗口可見時才讀取加速度數據,窗口不可見時讀了也沒什么用。

  1. Window.Current.VisibilityChanged += OnWindowVisibilityChanged; 
  2.      ........ 
  3.       private void OnWindowVisibilityChanged ( object sender, Windows.UI.Core.VisibilityChangedEventArgs e ) 
  4.       { 
  5.           if (e.Visible) 
  6.           { 
  7.               acc.ReadingChanged += acc_ReadingChanged; 
  8.           } 
  9.           else 
  10.           { 
  11.               acc.ReadingChanged -= acc_ReadingChanged; 
  12.           } 
  13.       } 

當有新的讀數報告時,會發生ReadingChanged事件,處理該事件,就能獲取到X,Y,Z軸上的讀數。

  1. async void acc_ReadingChanged ( Accelerometer sender, AccelerometerReadingChangedEventArgs args ) 
  2.      { 
  3.          // 將讀數乘以100,以擴大其值,便于比較 
  4.          double x = args.Reading.AccelerationX * 100d; 
  5.          double y = args.Reading.AccelerationY * 100d; 
  6.          double z = args.Reading.AccelerationZ * 100d; 
  7.          System.Diagnostics.Debug.WriteLine("X= {0:N0}, Y= {1:N0}, Z= {2:N0}", x, y, z); 
  8.          await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, 
  9.              async () => 
  10.              { 
  11.                  // 具體取什么數值,可以經過試驗獲得 
  12.                  if (Math.Abs(x) > 145d || Math.Abs(y) > 140d || Math.Abs(z) > 155d) 
  13.                  { 
  14.                      // 顯示靚圖 
  15.                  } 
  16.              }); 
  17.      } 

我這里把三個讀數都乘以100,只是我覺得好看罷了,如果你不喜歡就不用乘以100了。

因為用戶“搖一搖”的時候,我們代碼并不關心他向哪個方向甩,反正他是在甩動即可,所以,在判斷的時候可以取x,  y,  z的絕對值,用于判斷的參考數字不是固定的,大家可以自己試,試到合適的數字就可以了。我這里是當X上的值的絕對值大于145(1.45),Y的絕對值大 于140(1.4),Z的絕對值大于155(1.55)時就認為是用戶在搖動手機。

就是這樣,“搖一搖”功能就出來了,然后各位可以在真面上搖幾下(模擬器上很難測),就看到MM了。

 

 本文鏈接:http://www.cnblogs.com/tcjiaan/p/4009105.html

責任編輯:chenqingxiang 來源: cnblogs
相關推薦

2024-01-15 08:21:12

Android應用方式

2012-04-28 14:21:22

HTML5

2015-07-29 15:00:18

iPhone搖一搖

2023-11-14 15:51:38

蘋果系統App

2013-02-20 11:38:13

2015-03-04 11:09:42

微信搖一搖紅包

2014-07-11 14:55:59

傲游瀏覽器

2016-04-21 11:36:08

阿里無線技術營銷

2021-04-29 05:58:20

微信搖一搖抖音

2021-04-24 08:24:28

Windows10操作系統21H2

2015-03-03 09:59:31

微信搖一搖紅包

2015-05-15 15:10:16

紅包

2021-12-15 06:12:55

App

2015-12-29 16:58:03

飛凡

2015-01-22 15:44:55

Android源碼音樂播放器

2015-05-04 16:35:09

互聯網

2018-02-07 08:18:23

微信微信6.6.2刪除好友

2015-12-02 14:36:03

魅族

2011-12-12 14:41:57

2012-05-11 14:38:23

米聊微信雷軍
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美成人高清 | 2一3sex性hd | 99久久99久久精品国产片果冰 | 成人午夜精品 | 国产一区二区三区在线看 | 精品一区二区三区在线视频 | av毛片 | 自拍偷拍中文字幕 | 一级毛片成人免费看a | 九九久久99 | 国产黄色在线观看 | 一区二区在线 | 欧美国产精品一区二区 | 毛片网站在线观看视频 | 亚洲色图综合 | 妞干网av| 日韩一二三区视频 | 日韩一区二区三区四区五区六区 | 综合精品久久久 | 午夜伦4480yy私人影院 | 超碰97在线免费 | 澳门永久av免费网站 | 一区二区三区中文字幕 | 国外成人免费视频 | 久久精品一 | 久久精品欧美一区二区三区麻豆 | 中文字幕av一区 | 伊人爽 | 久久av网 | 中文字幕一区二区三区四区 | 国产精品一区二区久久久久 | 国产97碰免费视频 | 欧美一极视频 | 99re99| 在线视频a | 亚洲国产成人精品一区二区 | 狠狠色综合欧美激情 | 亚洲精品日韩视频 | www.99精品| 国产一在线 | 免费大黄视频 |