我正在尝试创建一个自定义视图,其中位图随着手机的移动而移动。
所以我创建了自定义视图并实现了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上进行传感器监听?
答案 0 :(得分:4)
您的视图中需要context
个对象。
然后打电话给
sm = (SensorManager) context.getSystemService(context.SENSOR_SERVICE)
答案 1 :(得分:2)
尝试导入android.content.Context
还可以尝试Context.SENSOR_SERVICE通过Context命名空间访问它。
是的,您应该能够使View使用SensorEventListener。您的View对象可以实现您喜欢的任意数量的接口:)(尽管从对象设计的角度来看,您可能希望避免这种情况)。