我经历了
TranslateAnimation (float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)
但我仍然困惑如何Translate animation
作品。
有人可以解释它是如何工作的? 我读这说的文档
fromXDelta Change in X coordinate to apply at the start of the animation
toXDelta Change in X coordinate to apply at the end of the animation
fromYDelta Change in Y coordinate to apply at the start of the animation
toYDelta Change in Y coordinate to apply at the end of the animation
但它仍然不是很清楚,我是如何工作的。
编辑 :我有一个Button
和一个LinearLayout
没有任何子女。 当我点击Button
我想动态生成TextView
和动画效果TextView
出现在LinearLayout
。 数TextView
旨意取决于在按钮上点击次数。
据我所知,会有这之间的相对连接。
也就是说,如果你想翻译从屏幕到屏幕左侧 ,在一个点击按钮的右边一个隐藏的TextView,你真正需要它的X方向( 屏幕的右侧 )的100%转化为X的0% -方向( 屏幕的左侧 )。
在这一点上,你并不需要在all.so这将是两个options.So最终0%改变Y方向,你将有:
fromXDelta 100%
toXDelta 0%
fromYDelta 0%
toYDelta 0%
您可以通过0之间的比例设置为100,按您的要求限制视图组件的。
同样,如果你需要,以及翻译上的Y方向的分量,那么你需要改变0%到一些其他的价值。
希望,它清楚你现在。
编辑:
你的要求,你需要重写按钮1的onclick,在那里你可以控制按钮-2的知名度,以及翻译。
在你的资源创建动画文件夹动画文件。
translate_button.xml:
<?xml version="1.0" encoding="utf-8"?>
<!-- translating button from right to left -->
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:fromXDelta="100%" android:toXDelta="0%"
android:fromYDelta="0%" android:toYDelta="0%"
android:duration="900"
/>
</set>
现在,在您的活动文件,
...
// ll is linear layout containing button_2
//counter is used to manage visibility of button_2 on click of button_1,i.e.1st click-button_2 would be visible,on 2nd click on button_1,it would be invisible.
//you can change behavior as per your need
button_2.setVisibility(View.GONE);
button_1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if(counter<1)
{
counter++;
button_2.setVisibility(View.VISIBLE);
Animation anim=AnimationUtils.loadAnimation(context, R.anim.translate_button);
button_2.startAnimation(anim);
}
else
{
counter=0;
button_2.setVisibility(View.GONE);
}
}
});
ll.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if(counter==1)
{
counter=0;
button_2.setVisibility(View.GONE);
}
}
});
...
随着TranslateAnimation你可以创建一个动画来控制对象。
随着TranslateAnimation你能够控制物体的位置。 您通过这4个参数,它代表的X和Y坐标。
通过比如你要的对象向右移动,你会做这样的事情:TranslateAnimation(0.0F,1.0F,0.0F,0.0F)
(或使用Animation.ABSOLUTE
, Animation.RELATIVE_TO_SELF
)
我们只用现在的X坐标,因为我们现在在做一个简单的“LeftToRight”动画之举。
Change in X coordinate to apply at the start of the animation
toXDelta (0.0f)
Change in X coordinate to apply at the end of the animation (1.0f)
= 1至权
也许看看http://en.wikipedia.org/wiki/Coordinate_system