• <Android 基础(二十五)> View Animation


    简介

    视图动画,主要包括位移,透明度,旋转和缩放,View本身的属性并没有发生变化,只是在这个视图上添加一些渐变的效果,所以总体而言,视图动画只能实现一些简单的动画效果,属性动画功能更强大。

    使用

    res/anim目录下创建动画资源文件,存放帧动画和渐变动画,主要tag:
    set, alpha, scale, tranlate, rotate分别对应动画集合,透明动画,缩放动画,位移动画,旋转动画

    格式

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:interpolator="@[package:]anim/interpolator_resource"
        android:shareInterpolator=["true" | "false"] >//子元素是否共享这个插值器
    
        <!--[0.0   ,   1.0] -->
        <alpha
            android:fromAlpha="float"
            android:toAlpha="float" />
    
        <!--[0.0, ?]
        <!-- pivotX,pivotY用来控制缩放的中心点-->
        <scale
            android:fromXScale="float"
            android:toXScale="float"
            android:fromYScale="float"
            android:toYScale="float"
            android:pivotX="float"
            android:pivotY="float" />
    
        <!-- in pixels relative to the normal position (such as "5"), in percentage relative to the element width (such as "5%"), or in percentage relative to the parent width (such as "5%p")-->
        <translate
            android:fromXDelta="float"
            android:toXDelta="float"
            android:fromYDelta="float"
            android:toYDelta="float" />
    
        <!-- android:pivotX, android:pivotY ----  n pixels relative to the object's left edge (such as "5"), in percentage relative to the object's left edge (such as "5%"), or in percentage relative to the parent container's left edge (such as "5%p") -->
        <rotate
            android:fromDegrees="float"
            android:toDegrees="float"
            android:pivotX="float"
            android:pivotY="float" />
        <set>
            ...
        </set>
    </set>

    < scale >

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <scale
            android:duration="2000"//时常(运行代码不要在这里做注释)
            android:pivotX="50%"
            android:pivotY="50%"//缩放中心点为视图的中心
            android:fromXScale="1.0"//起点大小
            android:fromYScale="1.0"
            android:toXScale="2.0"//目标大小
            android:toYScale="2.0" />
    </set>

    这里写图片描述

    < alpha>

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <alpha
            android:duration="2000"//时常
            android:fromAlpha="1.0"//起始透明度
            android:interpolator="@android:anim/accelerate_decelerate_interpolator"//插值
            android:toAlpha="0.0" />//目标透明度
    </set>

    这里写图片描述

    < rotate>

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <rotate
            android:duration="2000"//时常
            android:fromDegrees="0"//起始角度
            android:interpolator="@android:anim/decelerate_interpolator"//插值
            android:pivotX="50%"
            android:pivotY="50%"//旋转中心点为视图中心
            android:toDegrees="180" />//目标角度
    </set>

    这里写图片描述

    < translate>

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate
            android:duration="2000"//时常
            android:fromXDelta="0"
            android:fromYDelta="0"//起始位置相对于视图的位移
            android:interpolator="@android:anim/accelerate_interpolator"
            android:toXDelta="300"
            android:toYDelta="300" />//目标位置相对于视图的位移
    </set>

    这里写图片描述

    < set>

    将上面的代码各种渐变动画全部防止在< set >tag下,实现共同效果

    这里写图片描述

    备注

    代码中加载动画,例如旋转动画:

    rotateAnim = AnimationUtils.loadAnimation(this, R.anim.rotate_anim);
    imageView.startAnimation(rotateAnim);
  • 相关阅读:
    Camera
    iOS实现截屏 并合适保存
    将UIView转成UIImage,将UIImage转成PNG/JPG
    iOS7Status bar适配
    @synthesize obj=_obj的意义详解 @property和@synthesize
    iOS各种问题处理
    Foundation框架中的NSNumber对象详解
    iOS 文件和数据管理 (可能会删除本地文件储存)
    当ABAP遇见普罗米修斯
    一个工作13年的SAP开发人员的回忆:电子科技大学2000级新生入学指南
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6467165.html
Copyright © 2020-2023  润新知