在我的Android应用中,我使用动画来滑动视图。我的资源文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<translate
android:fromYDelta="1300"
android:duration="700"/>
</set>
在代码中我执行这样的动画:
RelativeLayout rlMapContainer = (RelativeLayout) getActivity().findViewById(R.id.rlMapContainer);
Animation animation = AnimationUtils.loadAnimation(context, R.anim.map_anim_up);
rlMapContainer.startAnimation(animation);
我想将fromYDelta更改为我在运行时确定的值。如何更改此值?
答案 0 :(得分:1)
您可以尝试以编程方式为视图设置动画,而不是使用xml文件。 检查我的代码,它可以帮助你制作动画。
TranslateAnimation anim1 = new TranslateAnimation(0, 0,
500, 0);
anim1.setDuration(500);
anim1.setFillAfter(false);
layTransparent.animate().setDuration(500)
.setListener(new AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animator animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationCancel(Animator arg0) {
// TODO Auto-generated method stub
}
});
layTransparent.startAnimation(anim1);
答案 1 :(得分:0)
以下代码完成了同样的事情:
TranslateAnimation translateAnimation = new TranslateAnimation(0, 0, 1200, 0);
translateAnimation.setInterpolator(new LinearInterpolator());
translateAnimation.setDuration(800);
translateAnimation.setFillAfter(true);
rlMapContainer.startAnimation(translateAnimation);