<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 312, 文章 - 14, 評論 - 1393, 引用 - 0
    數(shù)據(jù)加載中……

    Android教程之實(shí)現(xiàn)動作感應(yīng)技術(shù)

        今天有個公司說需要動作感應(yīng)的幾個小游戲!也接觸android很久了,但是以前沒有看過關(guān)于動作感應(yīng)技術(shù)的教程,到google上也沒搜索到類似教程!只有自己看API了,加上就其他平臺的動作感應(yīng)試試吧!就在這里記錄下收獲吧!
    1.發(fā)現(xiàn)Android提供了SensorListener接口
    2.要使用還得有個動作感應(yīng)管理器SensorManager
    Java代碼

       1. //取得SensorManager  
       2. SensorManager sensorMgr = (SensorManager)getSystemService(SENSOR_SERVICE);    

    //取得SensorManager
    SensorManager sensorMgr = (SensorManager)getSystemService(SENSOR_SERVICE);  

    3.注冊我們獲得的SensorManager
    Java代碼

       1. //返回true表示注冊成功,flase則反之  
       2. sensorMgr.registerListene(this,SensorManager.SENSOR_ACCELEROMETER,SensorManager.SENSOR_DELAY_GAME);  

    //返回true表示注冊成功,flase則反之
    sensorMgr.registerListene(this,SensorManager.SENSOR_ACCELEROMETER,SensorManager.SENSOR_DELAY_GAME);

    如果注冊SensorManager不成功就調(diào)用
    Java代碼

       1. sensorMgr.unregisterListener(this,SensorManager.SENSOR_ACCELEROMETER); 

    sensorMgr.unregisterListener(this,SensorManager.SENSOR_ACCELEROMETER);

    4.SensorListener必須實(shí)現(xiàn)兩個方法
    Java代碼

       1. public void onAccuracyChanged(int arg0, int arg1) {}  
       2. public void onSensorChanged(int sensor, float[] values) {}  

    public void onAccuracyChanged(int arg0, int arg1) {}
    public void onSensorChanged(int sensor, float[] values) {}

    5.自己定義一個3D的坐標(biāo)
    Java代碼

       1. class Pos3D  
       2. {  
       3.     float x;  
       4.     float y;  
       5.     float z;  
       6. }  
       7. Pos3D cur,last;  

    class Pos3D
    {
        float x;
        float y;
        float z;
    }
    Pos3D cur,last;

     在方法中這樣課可以獲得數(shù)據(jù)

     
    Java代碼

       1. cur.x = values[SensorManager.DATA_X];  
       2. cur.y = values[SensorManager.DATA_Y];  
       3. cur.z = values[SensorManager.DATA_Z];  
       4. float speed = Math.abs((cur.x+cur.y+cur.z)-(last.x+last.y+last.z))/ 間隔的時間 

    cur.x = values[SensorManager.DATA_X];
    cur.y = values[SensorManager.DATA_Y];
    cur.z = values[SensorManager.DATA_Z];
    float speed = Math.abs((cur.x+cur.y+cur.z)-(last.x+last.y+last.z))/ 間隔的時間

    下面就是判斷這個speed大于自己定義的一個數(shù)值時,進(jìn)行處理
    Java代碼

       1. if(speed > 1000)  
       2. {  
       3.     //這里來進(jìn)行處理  
       4. }  

    if(speed > 1000)
    {
        //這里來進(jìn)行處理
    }

     
    就這樣最基本的實(shí)現(xiàn)了動作感應(yīng),,但是大家肯定能感覺得到這個方法的不足之處,
    我也還在研究更好的方法,希望一起討論

    原文:http://www.eoeandroid.com/viewthread.php?tid=879&extra=&page=1




    Android開發(fā)完全講義(第2版)(本書版權(quán)已輸出到臺灣)

    http://product.dangdang.com/product.aspx?product_id=22741502



    Android高薪之路:Android程序員面試寶典 http://book.360buy.com/10970314.html


    新浪微博:http://t.sina.com.cn/androidguy   昵稱:李寧_Lining

    posted on 2009-08-17 10:32 銀河使者 閱讀(929) 評論(0)  編輯  收藏 所屬分類: java 原創(chuàng)移動(mobile)

    主站蜘蛛池模板: 亚洲国产欧美一区二区三区| 日韩中文字幕精品免费一区| 亚洲成AV人片在WWW| 亚洲AV无码不卡在线播放| 成人爱做日本视频免费| 日韩免费一区二区三区在线播放| 久久免费99精品国产自在现线| 亚洲人成色777777老人头| 亚洲精品在线观看视频| 亚洲乱码国产乱码精品精| 国产成人免费高清在线观看| 成人奭片免费观看| 毛片免费全部播放无码| 久久久久久国产精品免费免费男同 | 国产精品国产午夜免费福利看 | 日本亚洲国产一区二区三区| 国产免费久久精品久久久| 午夜免费福利影院| 三年片在线观看免费大全| 最近免费mv在线电影| 久操视频在线免费观看| www一区二区www免费| 九九视频高清视频免费观看| 免费夜色污私人影院网站| 日本系列1页亚洲系列| 亚洲AV第一成肉网| 亚洲av无码片vr一区二区三区| 亚洲熟妇无码一区二区三区| 久久亚洲精品专区蓝色区| 亚洲一区二区三区在线| 亚洲a视频在线观看| 色在线亚洲视频www| 亚洲高清中文字幕免费| 亚洲成年人电影网站| 亚洲国产精品久久人人爱| 亚洲精品韩国美女在线| 亚洲国产美女视频| 久久久国产亚洲精品| 亚洲精品中文字幕| 边摸边吃奶边做爽免费视频网站| 精品在线视频免费|