2

携帯電話の動きに合わせてビットマップが動き回るカスタム ビューを作成しようとしています。

そこで、カスタム ビューを作成し、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

2 に答える 2

5

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

于 2012-01-08T20:07:59.300 に答える
2

android.content.Context をインポートしてみてください

また、 Context.SENSOR_SERVICE を試して、 Context 名前空間を介してアクセスしてください。

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

于 2012-01-08T20:00:12.273 に答える