• 鍍金池/ 教程/ Android/ 百戰經(jīng)典第十七戰-基于加速度傳感器的搖一搖功能實(shí)例
    百戰經(jīng)典第二十戰-ListView中點(diǎn)擊button跳轉到撥號界面實(shí)例
    百戰經(jīng)典第十一戰-GridView動(dòng)態(tài)添加Item
    百戰經(jīng)典第二戰-好玩的Spinner控件
    百戰經(jīng)典第五戰-各種對話(huà)框Dialog精彩薈萃
    百戰經(jīng)典第八戰-BitmapFactory.Options對資源圖片進(jìn)行縮放
    百戰經(jīng)典第四戰-玩轉ListView
    百戰經(jīng)典第十五-竊聽(tīng)風(fēng)云之短信監聽(tīng)
    前言
    百戰經(jīng)典第十四戰-網(wǎng)絡(luò )交互,基于Baas用戶(hù)表查詢(xún)功能實(shí)現
    百戰經(jīng)典第九戰-ViewFlipper實(shí)現幻燈效果
    百戰經(jīng)典第三戰-實(shí)現畫(huà)圖板
    百戰經(jīng)典第十七戰-基于加速度傳感器的搖一搖功能實(shí)例
    百戰經(jīng)典第十戰-LayoutAnimation布局動(dòng)畫(huà)效果
    百戰經(jīng)典第七戰-顯示倒計時(shí)的Button按鈕
    百戰經(jīng)典第六戰-Activity啟動(dòng)模式小樣
    百戰經(jīng)典第十二戰-GridView動(dòng)態(tài)刪除Item
    百戰經(jīng)典第十六戰-圖片或頭像設置功能
    百戰經(jīng)典第十九戰-短信監聽(tīng)實(shí)現驗證碼自動(dòng)填入
    百戰經(jīng)典第一戰—聽(tīng)話(huà)的TextView
    百戰經(jīng)典第十八戰-自定義控件實(shí)現一鍵清空輸入框
    百戰經(jīng)典第十三戰-網(wǎng)絡(luò )交互,基于Baas實(shí)現用戶(hù)注冊功能

    百戰經(jīng)典第十七戰-基于加速度傳感器的搖一搖功能實(shí)例

    搖一搖在微信中引入之后,各種APP都以各種形式實(shí)現搖一搖功能,下面研究一下?lián)u一搖功能是如何觸發(fā)的,這里主要是用到了手機的加速度傳感器,代碼如下:

    package com.location.activity;
    //省略引入包
    public class MainActivity extends Activity {
        private SensorManager sensorManager;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);// 獲取服務(wù)
            Sensor sensor = sensorManager
                    .getDefaultSensor(Sensor.TYPE_ACCELEROMETER);// 傳感器種類(lèi)-加速度傳感器
            sensorManager.registerListener(listener, sensor,
                    SensorManager.SENSOR_DELAY_NORMAL);
        }
        @Override
        protected void onDestroy() {
            if (sensorManager != null) {
                sensorManager.unregisterListener(listener);
            }
            super.onDestroy();
        }
        /**
         * 傳感器觸發(fā)
         */
        private SensorEventListener listener = new SensorEventListener() {
    
            public void onSensorChanged(SensorEvent event) {
                float xValue = Math.abs(event.values[0]);// X軸方向加速度
                float yValue = Math.abs(event.values[1]);// Y軸方向加速度
                float zValue = Math.abs(event.values[2]);// Z軸方向加速度
                if (xValue > 20 || yValue > 20 || zValue > 20) {// 有任何一個(gè)方向的加速度值大于20,即觸發(fā)
                    /**
                     * 這里我們只是以Toast為例,您可以按照自己的需求在此寫(xiě)入各種方法;
                     */
                    Toast.makeText(MainActivity.this, "您啟動(dòng)了搖一搖功能!",
                            Toast.LENGTH_LONG).show();
                }
            }
            public void onAccuracyChanged(Sensor sensor, int accuracy) {
    
            }
        };
    }

    必須在真機上模擬,運行實(shí)例:

    這里寫(xiě)圖片描述

    總結:

    1. getSystemService(Context.SENSOR_SERVICE);// 獲取SensorManage對象;
    2. sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);// 獲取傳感器種類(lèi)
    3. 本文只是將搖一搖觸發(fā)為T(mén)oast,有需要的可以直接修改方法即可。
    草莓视频在线观看视频6_免费草莓视频_草莓视频在线下载免费官网_草莓视频黄色在线观看