2012-01-08 6 views
1

携帯電話の動きに合わせてビットマップを移動するカスタムビューを作成しようとしています。AndroidのカスタムビューでSensorEventListenerを使用できますか?

だから私は、カスタムビューを作成し、sensorEventListenerを実装:

public class MovingStarView extends View implements SensorEventListener { 
    private SensorManager sm; 
    private Sensor mAccelerometer; 

.....Other Initialization stuff..... 

private void initSensor(){ 
    // Get an instance of the SensorManager 
    sm = (SensorManager) getSystemService(SENSOR_SERVICE); <---NOT RESOLVED 
    //Get the Accelerometor 
    mAccelerometer = sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 
} 

EclipseはSENSOR_SERVICEが解決できないと言っています。私はこれを違って呼びますか?

これを行うことは可能ですか、カスタムビューを呼び出すアクティビティをリスンするセンサーを実行する必要がありますか?

答えて

4

あなたはビュー内にcontextオブジェクトが必要です。 次に電話
sm = (SensorManager) context.getSystemService(context.SENSOR_SERVICE)

2

は、コンテキストの名前空間を介してアクセスするContext.SENSOR_SERVICEを試​​してみてください。またandroid.content.Context

をインポートしてみます。

はい、ViewでSensorEventListenerを使用できるようにする必要があります。 Viewオブジェクトは、必要な任意の数のインタフェースを実装できます:)(オブジェクト設計の観点からは、これを避けることができます)。

関連する問題