Можете ли вы использовать SensorEventListener в пользовательском представлении в Android? - PullRequest
1 голос
/ 08 января 2012

Я пытаюсь создать пользовательский вид, в котором растровое изображение перемещается вместе с движением вашего телефона.

Итак, я создал пользовательский вид и реализовал 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 isговоря, что SENSOR_SERVICE не может быть решен.Должен ли я вызывать это по-другому?

Возможно ли это сделать, или мне придется прослушивать датчик в действии, которое вызывает пользовательское представление?

Ответы [ 2 ]

4 голосов
/ 09 января 2012

Вам нужен context объект на ваш взгляд. Тогда звоните
sm = (SensorManager) context.getSystemService(context.SENSOR_SERVICE)

2 голосов
/ 09 января 2012

Попробуйте импортировать android.content.Context

Также попробуйте Context.SENSOR_SERVICE, чтобы получить к нему доступ через пространство имен Context.

И да, вы должны быть в состоянии заставить ваш View использовать SensorEventListener. Ваш объект View может реализовывать любое количество интерфейсов, которые вы хотите :) (хотя с точки зрения проектирования объектов вы можете избежать этого).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...