これは簡単な質問かもしれませんが、行き詰まっています。描画プログラム(単純なペイントアプリ)に「シェイクして消去」機能を実装しようとしています。私はそれを働かせることができません。これが私のコードです:
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 ステートメントにしますが、画面に触れるまでキャンバスはリセットされません(新しいタッチ イベント)。
ユーザーからのプロンプトを必要とせずに、シェイクイベント中にキャンバスをリセット/消去したいと思います。
どんな助けでも素晴らしいでしょう、ありがとう!