解決済み 以下を参照
プログレスバーのようなアニメーションがあります。このアニメーションを開始するために使用するハードウェア フットペダルがあります。期待される結果は次のとおりです。
足が下がり、足が離されるまで進行が増加します。足を下ろしたままにしておくと、進行状況が 0 から 100% のアニメーション距離 (画面の幅) になります。次回も同じことが当てはまります。
ただし
、アニメーションが完了する前に足を離すと (20% など)、次にペダルを踏んだままにすると、アニメーションは最後まで実行されず、約 80% で停止します (関係はあると思いますが、寝不足かもしれません!)
また、短縮された時間 (20%) ペダルを踏んだ後、数秒待つと、次のアニメーションが意図したとおりに実行されます。以下にコードを掲載しました。
何が起こっているのか分かりますか?私はGingerbreadのSamsung Galaxy Sを使用しています。
public void startPedalProgress(int color){
pedal_down_progress.setBackgroundColor(color);
pedal_down_progress.clearAnimation();
Animation progressAnim = AnimationUtils.loadAnimation(this, R.anim.pedal_progress);
progressAnim.setDuration(3000);
pedal_down_progress.setVisibility(LinearLayout.VISIBLE);
pedal_down_progress.startAnimation(progressAnim);
}
public void stopPedalProgress(){
pedal_down_progress.clearAnimation();
}
と私のアニメーション
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:fromXDelta="0%" android:toXDelta="100%"
android:fromYDelta="0%" android:toYDelta="0%"
android:duration="3000" />
</set>
グローバルとして宣言progressAnim
して呼び出してみましたprogressAnim.cancel()
が、結果はまったく同じです。また、動的に作成されたアニメーションを使用してみました。