【问题标题】:Want image to be shown on center for few seconds while going from (YDelta) to (toYDelta) in Translate Animation希望图像在翻译动画中从 (YDelta) 到 (toYDelta) 时显示在中心几秒钟
【发布时间】:2015-10-19 23:06:30
【问题描述】:

我正在创建带有 FB 登录等动画的登录页面。我希望我的徽标图像在从 Ydelta 动画到 Ydelta 时显示在中心几秒钟。 代码:

 animation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.translate);

        animation.setAnimationListener(new Animation.AnimationListener() {


            @Override
            public void onAnimationStart(Animation arg0) {
            }

            @Override
            public void onAnimationRepeat(Animation arg0) {
            }

            @Override
            public void onAnimationEnd(Animation arg0) {



                        loginBox.setVisibility(View.VISIBLE);
                        Animation animFade = AnimationUtils.loadAnimation(MainActivity.this, R.anim.fade);
                        loginBox.startAnimation(animFade);

            }
        });

        ImageView imgLogo = (ImageView) findViewById(R.id.imageView );
        imgLogo.startAnimation(animation);

    }

translate.xml

<?xml version="1.0" encoding="utf-8"?>
<set
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"
    android:fillAfter="true">
    <translate
        android:fromYDelta="30%p"
        android:toYDelta="0%p"
        android:duration="1000" />
</set>

任何类型的帮助,感谢! 谢谢

【问题讨论】:

  • 您能解释一下会发生什么以及您的预期吗?我猜代码看起来不错。在 imgLogo 中翻译,然后在 loginBox 中淡入。
  • @oberflansch 是的,它工作正常,但我希望这个图像徽标在屏幕中心可见几秒钟,然后移动到 YDelta 位置。
  • @oberflansch:我希望它在中心停止几秒钟或从中心开始(等待几秒钟)然后移动到(toYDelta)位置。

标签: android android-layout android-activity android-animation translate-animation


【解决方案1】:

你可以使用两个动画:

翻译1.xml:

<translate
    android:fromYDelta="0%"
    android:toYDelta="50%"
    android:duration="1000"
     />

translate2.xml:

<translate
    android:fromYDelta="50%"
    android:toYDelta="100%"
    android:duration="1000"
    android:startOffset="2000" />

android:startOffset来延迟动画。


 moveToCenterAnim= AnimationUtils.loadAnimation(MainActivity.this, R.anim.translate1);

 moveToCenter.setAnimationListener(new Animation.AnimationListener() {


        @Override
        public void onAnimationStart(Animation arg0) {
        }

        @Override
        public void onAnimationRepeat(Animation arg0) {
        }

        @Override
        public void onAnimationEnd(Animation arg0) {

            ...

            ImageView imgLogo = (ImageView) findViewById(R.id.imageView );       
            Animation moveOnAnim= AnimationUtils.loadAnimation(MainActivity.this, R.anim.translate2);
            imgLogo.startAnimation(moveOnAnim);

        }
    });

    ImageView imgLogo = (ImageView) findViewById(R.id.imageView );
    imgLogo.startAnimation(moveToCenterAnim);

}

【讨论】:

  • 嘿,谢谢。有了这个,我明白并明白了。真的谢谢你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-08
  • 2022-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多