您可以在Android的自定义视图中使用SensorEventListener吗?

时间:2012-01-08 19:50:53

标签: android android-custom-view android-sensors

我正在尝试创建一个自定义视图,其中位图随着手机的移动而移动。

所以我创建了自定义视图并实现了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无法解析。我应该以不同的方式打电话吗?

可以这样做,还是我必须在调用自定义视图的Activity上进行传感器监听?

2 个答案:

答案 0 :(得分:4)

您的视图中需要context个对象。 然后打电话给 sm = (SensorManager) context.getSystemService(context.SENSOR_SERVICE)

答案 1 :(得分:2)

尝试导入android.content.Context

还可以尝试Context.SENSOR_SERVICE通过Context命名空间访问它。

是的,您应该能够使View使用SensorEventListener。您的View对象可以实现您喜欢的任意数量的接口:)(尽管从对象设计的角度来看,您可能希望避免这种情况)。