2012-04-05 11 views
1

私はカスタムビューを実装しました。このビューは実際にはシンプルで、2つの州(国境の有無にかかわらず)があり、オンタッチイベント(国境を押し下げて、押し上げることなく)で切り替わります。アンドロイドでの単純なアニメーションの競合

これは問題なしです。この問題は、ユーザーにシーケンスを表示したいときに発生します(つまり、toucheventsを無効にし、ビューの状態を手動で変更する)。

私のレイアウトでは、そのタイプのビューが4つあり、必要なのは、そのビューの状態をユーザーが見ることができるように切り替えることだけです。

MyView v1 = (MyView)findViewById(...) 
MyView v2 = (MyView)findViewById(...) 
MyView v3 = (MyView)findViewById(...) 
MyView v4 = (MyView)findViewById(...) 

v1.switchMode() 
v2.switchMode() 
v3.switchMode() 
v4.switchMode() 

このスイッチは、ユーザにとって見えるようにいくつかの時間(1秒)を保持すべきです。モードはブール値のvarで実装されます。私の実装は以下の通りです:

public void switchMode() 
    this.mode = false; 
    this.invalidate(); 
    try { 
Thread.sleep(1000); 
    } catch (InterruptedException e) { 
e.printStackTrace(); 
    } 
    this.mode = true; 
    this.invalidate(); 
} 

私のビューが再描画されませんので、私の睡眠は、全スレッドの睡眠であると思われる、と私はビュー上の任意の応答と変更せずに4秒を保持します。

この単純な状態の切り替えを実装する方法についての手掛かりはありますか?

は、私はその問題を解決するための良い方法を発見した事前

答えて

1

でいただきありがとうございます。 CountDownTimerは、私が望むように動作します:任意のアクションのタイマーを設定するインターフェースを提供し、そのアクションには多少の変動性を導入するためのティックコントローラーがあります(私の場合は、時間)。

関連する問題