将活动外部的按钮移动到特定位置

时间:2017-07-01 20:05:01

标签: android

我在活动中有多个垂直对齐的按钮(一个在另一个之下),我希望这些按钮出现在屏幕上,就好像用户在活动加载时看到它来自屏幕外部(在X轴上)。我已经经历了很多例子,但找不到真正的解决方案。如果您可以提供链接或示例,那就太棒了。早些时候,我使用了翻译,但是按钮从其实际位置移动到外部并返回到其原始位置。我的要求是只需要将这些按钮从屏幕外部移动到其原始位置。

主要活动中的片段:

button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button3 = (Button) findViewById(R.id.button3);
button4 = (Button) findViewById(R.id.button4);

buttonAnimation = AnimationUtils.loadAnimation(this, 
R.anim.button_animation);

button1.setAnimation(buttonAnimation);
button2.setAnimation(buttonAnimation);
button3.setAnimation(buttonAnimation);
button4.setAnimation(buttonAnimation);

RES /动画/ button_animation.xml:

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromXDelta="0"
        android:toXDelta="100%p"
        android:duration="500"
        android:repeatCount="1"
        android:repeatMode="reverse" >
    </translate>
</set>

在此代码中,按钮将移出屏幕并进入其原始位置。我需要让这只来自外部到它的真实位置。基本上,我不确定这样做的最佳方法是什么。

2 个答案:

答案 0 :(得分:0)

使用此动画。只调整项目中的值。注意按钮的第一个位置必须是动画后的最终位置。

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:interpolator="@android:anim/linear_interpolator"
        android:duration="500"
        android:fromXDelta="100%"
        android:toXDelta="0%" >
    </translate>
</set>

答案 1 :(得分:0)

如果你想通过改变它们的左边距和上边距来自由移动按钮,你的布局应该是一个RelativeLayout,按钮不应该有像“align_below”这样的规则,它们彼此相关或者与父节点相关。