更改按钮位置的时间
我试图更改函数时间中按钮位置的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);
我试过这个,但它不起作用。
如果您需要更多详细信息,告诉我。
对不起,我的英语不好。
我建议使用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
谢谢你,我会用动画 –
@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类允许您指定的结束坐标基于视图的相对位置(指+ =代替=等)
希望这有助于。
是的,我将使用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对象设置为在给定值之间进行动画处理。
不会Animtaion满足您的需求? –
是,我想动画 –
不相关的代码:轴是单数在图上轴。斧是在树上摆动的单数轴。我想你在这里。我将从现在开始使用“ax”,因为它有一个更好的环。 –