2012-04-14 14 views
0

私はアニメーションのあるボタン(線形レイアウトに配置)を持っています。アニメーションが完了したら(単純なtranslateAnimation)、アニメーション化されたボタンを有効にします。アニメーションを使用するだけで、ボタンのドロウアブルに効果があることに気が付いたので、クリック可能な「場所」は元の位置にとどまりました。アニメーション後にボタンの位置を設定する方法は?

layout= (LinearLayout) findViewById (R.id.newitemtext); 
layout.setBackgroundResource(R.drawable.white_box); 
btn = (Button) findViewById (R.id.btn); 
moveLefttoRight = new TranslateAnimation(0,0 , 0, 200); 
      moveLefttoRight.setDuration(1000); 
      moveLefttoRight.setFillAfter(true); 


      animbutton.setOnClickListener(new View.OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        layout.startAnimation(moveLefttoRight); 
        layout.setEnabled(true); 


       } 
      }); 

btn.setOnClickListener(new View.OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        Log.i("TAG", "CCIK"); 


       } 


}); 

btnボタンはLinearLayoutレイアウトになっています。アニメーションの後でどのようにポジションを設定できますか? setPaddingを使用しようとしましたが、成功しませんでした。 ありがとうございます!

+0

ボタンを実際にどこに表示したいのかがわかるように、最初から正しく表示して(非表示/非表示に)アニメーションを開始します(表示させる) – Jens

+0

それは私のケースでは不可能です:)とにかく素敵な回避策:D –

答えて

0

View.setLayoutParams()を使用してビューのパラメータを更新します。ビューの内部のレイアウトの種類によって、パラメータの更新方法が異なります。たとえば、ビューがLinearLayoutの場合は、LinearLayout(重力、重量、幅、高さなど)に関連するパラメータのみを調整できるため、絶対的なX/Yを調整することはできませんcoords。 RelativeLayoutのようなものに切り替えると、他のビューの位置に基づいてビューを最終的な移動先に移動できます。

関連する問題