更改按钮位置的时间

问题描述:

我试图更改函数时间中按钮位置的Y位置。
所以,举例来说,在时间0:在Y斧按钮位置是0
在时间1秒:在Y斧按钮位置是2更改按钮位置的时间

我可以使用margin_bottom或margin_top,但我只是不知道该怎么做。

Final chrono = (Chronometer) findViewByID(R.id.Chrono) 
long timeElapsed = SystemClock.elapsedRealtime() - chrono.getBase(); 
float y = 1000*(float)timeElapsed; 
button1.setY(y); 

我试过这个,但它不起作用。
如果您需要更多详细信息,告诉我。

对不起,我的英语不好。

+2

不会Animtaion满足您的需求? –

+0

是,我想动画 –

+0

不相关的代码:轴是单数在图上轴。斧是在树上摆动的单数轴。我想你在这里。我将从现在开始使用“ax”,因为它有一个更好的环。 –

我建议使用Animator。这将是一个简单的Y轴动画

Final chrono = (Chronometer) findViewByID(R.id.Chrono) 
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(chrono , 
     "translationY", y); 
objectAnimator.setDuration(700); //duration of the animation 
objectAnimator.start(); 

这里有一个很好的教程,让你开始

http://www.vogella.com/tutorials/AndroidAnimation/article.html#animations_animator

和Android文档

http://developer.android.com/guide/topics/graphics/prop-animation.html

+0

谢谢你,我会用动画 –

+0

@mortimer_onche。我会考虑选择其中一个答案,以便可以关闭该问题 – cjds

我理解你。

塞蒂()和setX的()似乎什么也不做

根据您的布局:(...

你应该需要修改的LayoutParams,我不会asume任何这样你就可以查看全过程。

RelativeLayout rl = new RelativeLayout(this); 
Button b = new Button(this); 
RelativeLayout.LayoutParams prms = new RelativeLayout.LayoutParams(Width,Heigh); 
prms.setMargins(left,up,right,down); //Here you set your X,Y at left,up 
rl.addView(b,prms); 

随着该布局,你只需要改变按钮的LayoutParams并设置保证金要定位。

当然,如果你想插值使用动画,这并不是一帆风顺的。

对于动画使用TranslateAnimation类允许您指定的结束坐标基于视图的相对位置(指+ =代替=等)

希望这有助于。

+0

是的,我将使用TranslateAnimation,谢谢! –

你可能想是这样的:

ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(button1, 
      "translationY", here put the value you want animated); 
    objectAnimator.setDuration(700); //duration of the animation 
    objectAnimator.start(); 
public static ObjectAnimator ofFloat (Object target, String propertyName, float... values) 

在API级别11 构造并返回浮点值之间的动画ObjectAnimator。一个单一的价值意味着那个价值是被动画的价值。两个值意味着开始和结束值。超过两个值意味着一个起始值,沿途动画的值和一个结束值(这些值将在动画的持续时间内均匀分布)。

参数

target对象,其属性是动画。这个对象应该有一个名为setName()的公共方法,其中name是propertyName参数的值。

propertyName的属性的名称被动画。

values的一组动画将随着时间的推移之间的动画的值。

Returns ObjectAnimator对象设置为在给定值之间进行动画处理。

ObjectAnimator Documentation