翻译动画问题

时间:2012-10-19 09:38:45

标签: android android-layout android-animation

我想通过屏幕特定X Y位置的翻译动画制作动画布局。这发生得非常正确。现在问题开始时动画完成布局再次转到屏幕的顶部rihgt角落。我希望布局保持在动画结束的相同位置。

 AnimationListener animationListener = new AnimationListener() {

        @Override
        public void onAnimationEnd(Animation arg0) {
            drawer_layout.setVisibility(View.VISIBLE);

        }

        @Override
        public void onAnimationRepeat(Animation animation) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onAnimationStart(Animation animation) {
            drawer_layout.setVisibility(View.VISIBLE);

        }

    };

    final Animation animTranslate = AnimationUtils.loadAnimation(this,
            R.anim.top_to_bottom_in);

    animTranslate.setAnimationListener(animationListener);

    drawer_layout = (LinearLayout) findViewById(R.id.drawer_layout);
    button.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // bitmapBackground = CaptureBackground();

            faded_layout.setBackgroundColor(Color.parseColor("#50ffffff"));

            // HandleDropAnimation(drawer_layout);
            drawer_layout.startAnimation(animTranslate);
        }
    });

这是我的xml。

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:fromYDelta="25%p"
android:toYDelta="50%p" />

2 个答案:

答案 0 :(得分:2)

致电

animTranslate.setFillAfter(true);

在开始动画之前

。根据{{​​3}}:

  

如果fillAfter为true,则此动画执行的转换将在完成时保持不变。

答案 1 :(得分:1)

在动画开始前使用

animTranslate.setFillAfter(true);