• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Android使用动画,动画不动的坑

武飞扬头像
zhugscn
帮助2

软件需求:在 VideoView上,加上一个动画,来转场。 

网上的例子都是用

TranslateAnimation, 然后用类似方案调用
  1.  
    void performAnim(){
  2.  
    TranslateAnimation animation1 = new TranslateAnimation(1,1,1,800);//设置方向,初始位置和末位的设置
  3.  
    animation1.setDuration(2000);//设置动画持续时间
  4.  
    animation1.setRepeatCount(0);//设置重复次数
  5.  
    iv_cloud.setAnimation(animation1);
  6.  
    iv_cloud.requestFocus();
  7.  
    /** 开始动画 */
  8.  
    animation1.startNow();
  9.  
    }

实际试验 ,如果它被放在onCreate(), onResume(), onViewCreated()里都没问题,可以放。但是如果延后放动画,比如通过handler去发message调用,那么这一段就不管用了,动画一动不动。

后来试验 了好几个小时,终于找到好办法了:

  1.  
    public static void startTranslateAnim(Context context, View view) {
  2.  
    Animation animation = AnimationUtils.loadAnimation(context, R.anim.anim_translate_up_down);
  3.  
    if (view != null)
  4.  
    view.startAnimation(animation);
  5.  
    }

而 anim_translate_up_down的代码是:

  1.  
    <?xml version="1.0" encoding="utf-8"?>
  2.  
    <set xmlns:android="http://schemas.android.com/apk/res/android">
  3.  
    <translate
  4.  
    android:duration="2000"
  5.  
    android:interpolator="@android:anim/accelerate_interpolator"
  6.  
    android:fillAfter="true"
  7.  
    android:fillEnabled="true"
  8.  
    android:fromXDelta="0"
  9.  
    android:fromYDelta="0"
  10.  
    android:repeatCount="0"
  11.  
    android:repeatMode="restart"
  12.  
    android:toXDelta="0"
  13.  
    android:toYDelta="700" />
  14.  
     
  15.  
    <!--android:toXDelta="50%"
  16.  
    这里填写百分比则以自己或者父控件为参照物
  17.  
    若填写具体数字如1000则为绝对坐标,即该手机的像素点对应的长度-->
  18.  
    </set>
学新通

运行效果如图:

学新通

完整的源码例子上传 在这里。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgbgaii
系列文章
更多 icon
同类精品
更多 icon
继续加载