zoukankan      html  css  js  c++  java
  • android 动画基础绘——view 动画(二)[补]

    前言

    这个是对view 动画的补充,是一些view 动画的特殊使用场景。
    回顾第一篇关于view 动画的,我介绍到view的动画都是针对元素本身的。
    当我们开发view动画的时候,我们看到几个元素在做相同规律的变化,如果我们去一个个设置的话,当然是可以的,但是呢一个代码不美观。
    同样我们看到,我们进入下一个页面的时候,那么有一个切换动画。这些基本都可以用view 动画实现。

    正文

    activity 切换效果

    Intent intent=new Intent(this,demo.class);
    startActivity(intent);
    overridePendingTransition(R.anim.enter_anim,R.anim.enter_anim);
    
    @Override
    public  void finish()
    {
    super.finish();
    overridePendingTransition(R.anim.enter_anim,R.anim.enter_anim);
    }
    

    上面两串代码分别是入场动画,和出场动画。
    值得注意的是:
    动画本身一定要在startActivity和finish 后面。
    其实这个也非常好理解,虽然我没有去看源代码,到时可以肯定的时候,这时候去拿到了当前被压栈的view。

    fragment 也可以添加切换动画:在此就不介绍都一样。

    viewgroup

    viewgroup 在我理解中是容器一样,也就是里有子元素。看下它是如何控制子元素的变化吧。

    <?xml version="1.0" encoding="utf-8"?>
    <layoutAnimation android:delay="0.5"
      android:animationOrder="normal"
      android:animation="@anim/enter_anim"
      xmlns:android="http://schemas.android.com/apk/res/android">
    </layoutAnimation>
    

    android:animationOrder 设置我们动画的顺序,比如说有5个元素,是让他们一个一个按照顺序来呢,还是随机呢。
    如果android:animationOrder设置为0,那么是毫无一样的,无论是一个一个顺序来或者随机,如果没有延迟,那么将无意义。
    android:delay 为0.5,是相当于android:animation="@anim/enter_anim"中的during而言的。
    比如:

    <?xml version="1.0" encode="utf-8"?>
    <set
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:duration="200"
      >
    </set>
    

    android:duration="200",那么就是延迟1秒。
    groupview 去加载时候:

    <ListView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layoutAnimation="@anim/layout_anim">
    </ListView>
    

    这样设置就是一开始就执行。
    那么我们依然可以控制:

    ListView listView=(ListView)findViewById(R.id.list);
    Animation animation =AnimationUtils.loadAnimation(this,R.anim.enter_anim);
    LayoutAnimationController controller =new LayoutAnimationController(animation);
    controller.setDelay(0.5f);
    controller.setOrder(LayoutAnimationController.ORDER_NORMAL);
    listView.setLayoutAnimation(controller);
    
  • 相关阅读:
    WebFlux系列(二) Server-Sent Events
    WebFlux系列(一)HelloWorld
    Reactor系列(十九)StepVerifier测试
    C++中vector和set使用sort方法排序
    获取线程ID
    C标准中一些预定义的宏__DATE__ __FILE__ __LINE__ __TIME__ __func__
    opencv测试代码
    nohub相关
    tensorflow相关练习
    摄像机相关
  • 原文地址:https://www.cnblogs.com/aoximin/p/12306777.html
Copyright © 2011-2022 走看看