【问题标题】:Android - How to "shake to erase"?Android - 如何“摇一摇擦除”?
【发布时间】:2011-02-20 06:44:30
【问题描述】:

这可能是一个简单的问题,但我被困住了。我正在尝试在绘图程序(简单的绘图应用程序)中实现“摇动擦除”功能。我无法让它工作。这是我的代码:

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 语句中,但直到我触摸屏幕(一个新的触摸事件)之后,画布才会重置。

我希望画布在摇动事件期间重置/擦除,无需用户进一步提示。

任何帮助都会很棒,谢谢!

【问题讨论】:

    标签: android canvas paint shake


    【解决方案1】:

    您可能必须在图形对象上调用invalidate 以使其重绘。 希望有帮助! http://developer.android.com/guide/topics/graphics/index.html

    【讨论】:

    • 谢谢!我尝试用mView.invalidate(); 替换mView.onDraw(mCanvas);——现在完美!
    猜你喜欢
    • 1970-01-01
    • 2012-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多