动画仅影响窗口小部件的绘制,这意味着在动画完成后,我的FrameLayout screenMain仍然位于其先前位置,需要在下一个位置设置FrameLayout。
screenMain.setOnClickListener(new View.OnClickListener() {
int i = 0;
@Override
public void onClick(View view) {
if (i % 2 == 0) {
screenMain.startAnimation(translate);
sh.startAnimation(translate);
sg.startAnimation(translate);
i++;
} else {
screenMain.startAnimation(translateb);
sh.startAnimation(translateb);
sg.startAnimation(translateb);
i++;
}
}
});
代码动画
<?xml version="1.0" encoding="utf-8"?>
<set>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0.0"
android:toXDelta="0.0"
android:fromYDelta="0.0"
android:toYDelta="180.0"
android:duration="200"
android:fillAfter="true"
android:fillEnabled="true"
/>
</set>
代码动画b
<?xml version="1.0" encoding="utf-8"?>
<set>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0.0"
android:toXDelta="0.0"
android:fromYDelta="180.0"
android:toYDelta="0.0"
android:duration="200"
android:fillAfter="true"
android:fillEnabled="true" />
</set>
答案 0 :(得分:0)
要更改视图的位置,您需要调用view.setLayoutParams()。实现此动画效果的简单方法是首先将setLayoutParams()调用到结束位置,然后从原始位置调用TranslateAnimation。
以下是有关如何:http://www.clingmarks.com/?p=400
的详细信息