【问题标题】:Complex View Animation in AndroidAndroid中的复杂视图动画
【发布时间】:2012-05-01 21:09:24
【问题描述】:

在我的 android 应用程序中,我想显示动画以便视图从其位置弹出

更详细地说,我想实现这样的目标 -

  • 点击查看(可以是任何类型的查看,比如 ImageView),它将移向屏幕顶部
  • 经过一定距离后,它会再次移动到屏幕中心,同时稍微放大

我对android中的Animation类、Animation Listener和AnimationSet略知一二。 但仍在寻求实现此功能的指南

您能建议实现这一目标的方法吗?

编辑部分 -

主要问题是在移动到顶部后获得正确的视图坐标 下一个问题是将该视图从最后一个位置带到屏幕中心

【问题讨论】:

  • 我认为你需要放大动画,这是你想要的吗?
  • 我认为只有缩放不起作用。我想要一组动画,其中视图将向顶部移动,然后移动并固定在屏幕中心

标签: android android-animation android-view


【解决方案1】:

以下代码将有一个动画 - 将向下移动并带有缩放效果的中间

@Override public void onClick(final View view) { TranslateAnimation translateAnimation1 = new TranslateAnimation( TranslateAnimation.RELATIVE_TO_PARENT, 0.0f, TranslateAnimation.RELATIVE_TO_PARENT, 0.8f, TranslateAnimation.RELATIVE_TO_PARENT, 0.0f, TranslateAnimation.RELATIVE_TO_PARENT, 0.8f); translateAnimation1.setDuration(1000); translateAnimation1.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation arg0) {} @Override public void onAnimationRepeat(Animation arg0) {} @Override public void onAnimationEnd(Animation arg0) { TranslateAnimation translateAnimation2 = new TranslateAnimation( TranslateAnimation.RELATIVE_TO_PARENT, 0.8f, TranslateAnimation.RELATIVE_TO_PARENT, 0.5f, TranslateAnimation.RELATIVE_TO_PARENT, 0.8f, TranslateAnimation.RELATIVE_TO_PARENT, 0.5f); translateAnimation2.setDuration(1000); AnimationSet animationSet = new AnimationSet(false); ScaleAnimation scaleAnimation = new ScaleAnimation(1.0f, 2.0f,1.0f,2.0f,ScaleAnimation.RELATIVE_TO_SELF ,0.5f,ScaleAnimation.RELATIVE_TO_SELF,0.5f); scaleAnimation.setDuration(1000); animationSet.addAnimation(scaleAnimation); animationSet.addAnimation(translateAnimation2); view.startAnimation(animationSet); } }); view.startAnimation(translateAnimation1); }

【讨论】:

    【解决方案2】:

    试试这个,

    ScaleAnimation animScale = new ScaleAnimation(0, 2, 0, 5);
    animScale.setDuration(2000);
    AnimationSet animation = new AnimationSet(false);
    animation.addAnimation(animScale);
    view.startAnimation(animation);
    

    更改 ScaleAnimation 构造函数中的值以获得所需的输出

    【讨论】:

    • 您好 Hardik,感谢您的及时回复 .. 您提供的代码非常适合缩放视图 .. 但请查看帖子的已编辑部分 .. 以便您对问题有更多了解..
    • 看 Sudar 给出的上述答案工作正常,这一定是你想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多