2017-06-11 1 views
0

slidesPanelアクティビティでカスタムメニューバーを作成したいと思います。 アニメーションを開始するときに遅れがありました。アンドロイドスタジオのアニメーション、ハンドラ、スレッドで遅れます

私は検索してUIスレッドがあり、 スレッドとハンドラを使用することを推奨しました。私はコードを書き直しますが、私がアクティブのときにはまだ遅れています 以下の機能。

間違いがありますか?

public void animHandler(){ 
    final Handler mHandler = new Handler(); 
    Thread t = new Thread(new Runnable() { 
     @Override 
     public void run() { 
      mHandler.post(new Runnable() { 
       @Override 
       public void run() { 
        slidingPanel = (RelativeLayout) findViewById(R.id.slidingRel); 
        slidingPanel.startAnimation(translateLeftAnim); 
        slidingPanel.setVisibility(View.VISIBLE); 

       } 
      }); 

     } 
    }); 
    t.start(); 
} 

お読みいただきありがとうございます!

答えて

0

別のスレッドで実行した後、UIスレッドでそれを更新しても、主スレッドで実行されているため、遅れている問題を正確に修正することはできません。

SurfaceViewを使用すると、バックグラウンドスレッドのすべてのUIを更新することも、アニメーションを適切に処理するカスタムビューを完全に作成することもできます。

関連する問題