zoukankan      html  css  js  c++  java
  • Android旋转动画

    概述

    Android的属性动画,可以让View有一个颜色的切换动画;可以使用3D旋转动画;当动画停止时,可以让View的位置就是当前的位置。

    相关API

    我们首先需要了解几个属性:

    • Duration动画的持续时间,默认300ms。
    • Time interpolation:时间差值,乍一看不知道是什么,但是我说LinearInterpolator、AccelerateDecelerateInterpolator,大家一定知道是干嘛的了,定义动画的变化率。
    • Repeat count and behavior:重复次数、以及重复模式;可以定义重复多少次;重复时从头开始,还是反向。
    • Animator sets: 动画集合,你可以定义一组动画,一起执行或者顺序执行。
    • Frame refresh delay:帧刷新延迟,对于你的动画,多久刷新一次帧;默认为10ms,但最终依赖系统的当前状态;基本不用管。

    相关的类

    • ObjectAnimator 动画的执行类,后面详细介绍
    • ValueAnimator 动画的执行类,后面详细介绍
    • AnimatorSet 用于控制一组动画的执行:线性,一起,每个动画的先后执行等。
    • AnimatorInflater 用户加载属性动画的xml文件
    • TypeEvaluator 类型估值,主要用于设置动画操作属性的值。
    • TimeInterpolator 时间插值,上面已经介绍。

    总的来说,属性动画就是,动画的执行类来设置动画操作的对象的属性、持续时间,开始和结束的属性值,时间差值等,然后系统会根据设置的参数动态的变化对象的属性。

    ObjectAnimator实现旋转动画

    布局代码,就一张图片

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
        xmlns:tools="http://schemas.android.com/tools"  
        android:layout_width="match_parent"  
        android:layout_height="match_parent"  
        android:id="@+id/id_container" >  
      
        <ImageView  
            android:id="@+id/id_ball"  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:layout_centerInParent="true"  
            android:src="@drawable/mv"   
            android:scaleType="centerCrop"  
            android:onClick="rotateyAnimRun"  
            />  
      
    </RelativeLayout> 
    

    Activity代码

    public class ObjectAnimActivity extends Activity  
    {  
        @Override  
        protected void onCreate(Bundle savedInstanceState)  
        {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.xml_for_anim);  
        }  
      
        public void rotateyAnimRun(View view)  
        {  
             ObjectAnimator//  
             .ofFloat(view, "rotationX", 0.0F, 360.0F)//  
             .setDuration(500)//  
             .start();  
        }  
      
    } 
    

    一行代码就可以实现图片旋转,效果如下所示:

    image

    更多关于属性动画请参考:Android 属性动画(Property Animation) 完全解析 (上)

  • 相关阅读:
    Windows Form -----内容(3)
    Windows Form -----内容(2)
    Windows Form -----内容(1)
    C#与数据库链接---小练3--插入语句的验证
    C#与数据库链接---小练2--查询
    连接数据库--小练---简单增删改
    SQL简短汇总
    面向对象---4
    面向对象--3
    面向对象----类2
  • 原文地址:https://www.cnblogs.com/xl-phoenix/p/7541413.html
Copyright © 2011-2022 走看看