2012-04-14 111 views
0

我有一个按钮(放置在一个linearlayout)与动画。动画完成后(简单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 2012-04-14 12:05:00

+0

这是不可能在我的情况:)无论如何很好的解决方法:D – 2012-04-15 00:06:19

回答

0

使用View.setLayoutParams()来更新Views参数 - 注意它取决于视图在哪种布局内部,以及参数如何更新。例如,如果您的视图在LinearLayout中,那么您将只能调整与LinearLayout(重力,重量,宽度,高度等)相关的参数,因此无法调整绝对X/Y COORDS。您可能想要切换到RelativeLayout之类的地方,尝试根据其他视图的位置将视图移动到最终目的地。