2012-05-10 50 views
4

我正在製作我的第一個動態壁紙的過程。我從示例CubeWallpaper中的代碼開始並對其進行修改。到目前爲止事情一直很順利,現在我正在繪製自己的完全不同的動畫圖形。從動態壁紙閱讀傾斜傳感器

我現在希望我的圖形能夠響應手機的傾斜程度。我之前在非壁紙應用中實施了傾斜傳感器。但是,當我試圖將我的傾斜代碼包含在壁紙中時,onSensorChanged()方法似乎不會被調用 - 至少我的日誌消息從不出現在logcat中。

有一兩件事我不知道是在哪裏追加implements SensorEventListener。它應該是我的課程延伸WallpaperService或其子類延伸Engine?..其實我已經嘗試了兩種方式 - 而且都沒有工作。是否有可能需要做額外的事情才能使傾斜工作?

編輯:目前我的猜測是,implements SensorEventListener追加到擴展Engine類,所以我的代碼的要點如下:

編輯:難道是與哪個線程SensorEventListener正在運行?我在某處閱讀它需要在UI線程上。

public class MicksWallPaper extends WallpaperService 
{ 
    // blah blah 

    class MyWallPaper extends Engine implements SharedPreferences.OnSharedPreferenceChangeListener , SensorEventListener 
    { 
     SensorManager sensorManager = null; 
     onCreate() 
     { 
      sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); 
     } 

     public void onSensorChanged(SensorEvent event) 
     { 
     Log.i("wp:","onSensorChanged"); // I never see this message 
      synchronized (this) 
      { 
       switch (event.sensor.getType()) 
       { 
        case Sensor.TYPE_ORIENTATION: 
         pitch = event.values[1]; 
         Log.i("pitch=",""+pitch); 
        break; 
       } 
      }  
     } 
    }  
} 

編輯:問題解決了。多麼尷尬 - 我只是忘記給我的sensorManager調用registerListener。

+0

添加您的最終編輯作爲您自己問題的答案...您可以獲得更多SO布朗尼分數! –

回答

0

(關於食人魔的建議...)

問題解決了。多麼尷尬 - 我只是忘記給我的sensorManager調用registerListener。