这可能是一个简单的问题,但我被困住了。我正在尝试在绘图程序(简单的绘图应用程序)中实现“摇动擦除”功能。我无法让它发挥作用。这是我的代码:
private final SensorEventListener mSensorListener = new SensorEventListener() {
public void onSensorChanged(SensorEvent se) {
float x = se.values[0];
float y = se.values[1];
float z = se.values[2];
mAccelLast = mAccelCurrent;
mAccelCurrent = (float) Math.sqrt((double) (x*x + y*y + z*z));
float delta = mAccelCurrent - mAccelLast;
mAccel = mAccel * 0.9f + delta; // perform low-cut filter
if (mAccel > 2) {
mView.onDraw(mCanvas);
mCanvas.drawBitmap(cache, 0, 0, new Paint(Paint.DITHER_FLAG));
}
}
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
SensorEventListener基于this example。我把它变成if语句,但画布不会重置,直到之后我触摸屏幕(一个新的触摸事件)。
我想在摇动事件期间重置/擦除画布,而不需要用户进一步提示。
任何帮助都会很棒,谢谢!
答案 0 :(得分:2)
您可能需要在图形对象上调用invalidate
才能重绘它。
希望有所帮助!
http://developer.android.com/guide/topics/graphics/index.html