4

これは簡単な質問かもしれませんが、行き詰まっています。描画プログラム(単純なペイントアプリ)に「シェイクして消去」機能を実装しようとしています。私はそれを働かせることができません。これが私のコードです:

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 は、この例に基づいています。if ステートメントにしますが、画面に触れるまでキャンバスはリセットされません(新しいタッチ イベント)。

ユーザーからのプロンプトを必要とせずに、シェイクイベント中にキャンバスをリセット/消去したいと思います。

どんな助けでも素晴らしいでしょう、ありがとう!

4

1 に答える 1

2

invalidate再描画するには、グラフィックス オブジェクトを呼び出す必要がある場合があります。それが役立つことを願っています! http://developer.android.com/guide/topics/graphics/index.html

于 2011-02-19T22:40:43.723 に答える