• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android 动画资源 详解

Android 动画资源 详解

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android动画详解,android属性动画详解,android四大组件详解,android项目开发详解,android service详解等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android 动画资源 详解


Android 动画资源

一、分类:
(一)、概要:

    3.0以前,android支持两种动画模式,补间动画(tween animation),帧动画(frame animation),在android3.0中又引入了一个新的动画系统:属性动画(property animation)。

    这三种动画模式在SDK中被称为view animation,drawable animation,property animation。

(二)、动画资源分类:

属性动画:Property Animation 帧动画:Frame Animation (Drawable Animation) 补间动画:Tween Animation (View Animation)

1 透明度补间动画
2 缩放补间动画
3 旋转补间动画
4 移动补间动画
? Alpha:渐变透明度动画效果
? Scale:渐变尺寸伸缩动画效果
? Translate:画面转换位置移动动画效果
? Rotate:画面转换位置移动动画效果

二、补间动画:

    Tween Animation就是一系列View形状的变换,如大小的缩放、透明度的改变、水平位置的改变、旋转位置改变,动画的定义既可以用java代码定义也可以用XML定义。建议用XML定义。
    用XML定义的动画放在/res/anim/文件夹内,XML文件的根元素为 , 二级节点可为,,,。

(一)、Tween Animation共同的属性:
1、duration[long] 属性为动画持续时间 时间以毫秒为单位
2、fillAfter [boolean] 当设置为true ,该动画转化在动画结束后被应用
3、fillBefore[boolean] 当设置为true ,该动画转化在动画开始前被应用
4、interpolator 指定一个动画的插入器 有一些常见的插入器
? accelerate_decelerate_interpolator 加速-减速 动画插入器
? accelerate_interpolator 加速-动画插入器
? decelerate_interpolator 减速- 动画插入器
其他的属于特定的动画效果
5、repeatCount[int] 动画的重复次数
6、repeatMode[String] 定义重复的行为
? “restart” 、”reverse”
? eg: android:repeatMode=”reverse”

(二)、用xml资源实现补间动画:

【说明:】
1.fromAlpha:属性为动画起始时透明度
? 0.0表示完全透明
? 1.0表示完全不透明
? 以上值取0.0-1.0之间的float数据类型的数字
2.toAlpha:属性为动画结束时透明度

【说明:】
1.fromXScale[float]
2.fromYScale[float] 为动画起始时,X、Y坐标上的伸缩尺寸
? 0.0表示收缩到没有
?
? 1.0表示正常无伸缩
?
? 值小于1.0表示收缩
?
? 值大于1.0表示放大
?
3.toXScale [float]
为动画结束时,X坐标上的伸缩尺寸
4.toYScale[float] 为动画结束时,Y坐标上的伸缩尺寸
5.pivotX[float]

6.pivotY[float] 为动画相对于物件的X、Y坐标的开始位置
属性值说明:从0%-100%中取值,50%为物件的X或Y方向坐标上的中点位置

【说明:】
1.fromXDelta
2.toXDelta 为动画结束起始时 X坐标上的位置
3.fromYDelta
4.toYDelta 为动画结束起始时 Y坐标上的位置

【说明:】
1.fromDegrees 为动画起始时物件的角度
说明
:当角度为负数——表示逆时针旋转
当角度为正数——表示顺时针旋转
(负数from——to正数:顺时针旋转)
(负数from——to负数:逆时针旋转)
(正数from——to正数:顺时针旋转)
(正数from——to负数:逆时针旋转)
2.toDegrees 属性为动画结束时物件旋转的角度 可以大于360度
3.pivotX
4.pivotY 为动画相对于物件的X、Y坐标的开始位
说明:以上两个属性值 从0%-100%中取值
,50%为物件的X或Y方向坐标上的中点位置

(三)、用java代码实现补间动画:

public class MainActivity extends AppCompatActivity {

    private ImageView iv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        iv = ((ImageView) findViewById(R.id.iv));
    }

    public void translateClick1(View view) {
        //1.X轴移动的起始位置
        //2.X轴移动的结束位置
        //3.Y轴移动的起始位置
        //4.Y轴移动的结束位置
        TranslateAnimation ta = new TranslateAnimation(0, 200, 0, 200);
        //动画执行的时间,5000毫秒
        ta.setDuration(5000);
        //设置动画结束后ImageView保持动画结束时的状态
        ta.setFillAfter(true);
        //让ImageView产生动画效果
        iv.startAnimation(ta);
    }

    public void alphaClick1(View view) {
        //1.表示动画的起始状态,1表示完全不透明,0表示完全透明
        //2.表示动画的结束状态
        AlphaAnimation aa = new AlphaAnimation(1, 0);
        aa.setDuration(3000);
        iv.startAnimation(aa);
    }

    public void scaleClick1(View view) {
        //1.X轴起始状态
        //2.X轴结束状态
        //5。6表示缩放的中心点
//        ScaleAnimation sa = new ScaleAnimation(0, 2, 0, 1, iv.getWidth() / 2, iv.getHeight() / 2);
        //缩放中心点参考ImageView的中心点,0.5f表示宽度/高度的50%
        ScaleAnimation sa = new ScaleAnimation(0, 1, 0, 1, ScaleAnimation.RELATIVE_TO_SELF, 0.5f, ScaleAnimation.RELATIVE_TO_SELF, 0.5f);
        sa.setDuration(3000);
        iv.startAnimation(sa);
    }

    public void rotateClick1(View view) {
        //1.旋转的起始位置
        //2.旋转的结束位置
        //3.4表示旋转的中心点
//        RotateAnimation ra = new RotateAnimation(0, 360, iv.getWidth() / 2, iv.getHeight() / 2);
        RotateAnimation ra = new RotateAnimation(0, 359, RotateAnimation.RELATIVE_TO_SELF, 0.5f, RotateAnimation.RELATIVE_TO_SELF, 0.5f);
        //设置旋转次数
        ra.setRepeatCount(RotateAnimation.INFINITE);
        //设置重复旋转的模式
        ra.setRepeatMode(RotateAnimation.REVERSE);
        ra.setDuration(3000);
        iv.startAnimation(ra);
    }

    public void setClick1(View view) {
        //true表示动画的插值器统一使用AnimationSet默认的插值器
        AnimationSet set = new AnimationSet(true);
        TranslateAnimation ta = new TranslateAnimation(0, iv.getWidth(), 0, iv.getHeight());
        ta.setDuration(3000);
        //将所有动画添加到set中
        set.addAnimation(ta);
        AlphaAnimation aa = new AlphaAnimation(0.2f, 0.8f);
        aa.setDuration(3000);
        set.addAnimation(aa);
        ScaleAnimation sa = new ScaleAnimation(1, 2, 1, 2, ScaleAnimation.RELATIVE_TO_SELF, 0.5f, ScaleAnimation.RELATIVE_TO_SELF, 0.5f);
        sa.setDuration(3000);
        set.addAnimation(sa);
        RotateAnimation ra = new RotateAnimation(0, -359, RotateAnimation.RELATIVE_TO_SELF, 0.5f, RotateAnimation.RELATIVE_TO_SELF, 0.5f);
        ra.setDuration(3000);
        set.addAnimation(ra);
        iv.startAnimation(set);
    }

    public void translateClick2(View view) {
        Animation animation = AnimationUtils.loadAnimation(this, R.anim.translate_anim);
        animation.setFillAfter(true);
        iv.startAnimation(animation);
    }

    public void alphaClick2(View view) {
        Animation animation = AnimationUtils.loadAnimation(this, R.anim.alpha_anim);
        iv.startAnimation(animation);
    }

    public void scaleClick2(View view) {
        Animation animation = AnimationUtils.loadAnimation(this, R.anim.scale_anim);
        iv.startAnimation(animation);
    }

    public void rota



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 详解Android微信登录与分享,详解android分享
  • Android 动画资源 详解
  • android 动画详解(二)
  • Android 中的长度单位详解
  • Android pendingInten 用法详解
  • android动画详解四 创建动画浅析
  • android动画详解三 动画API概述
  • android动画详解一 概述
  • Android动画原理总结
  • Android 蓝牙操作详解,android蓝牙详解

相关文章

  • 2017-05-26自用工程教程(一)建立开发环境与HelloWorld,自用helloworld
  • 2017-05-26Android_LIFE帮(基于最新百度地图API的开源项目)
  • 2017-08-31Android中TextView、EditText对部分内容设置不同格式(颜色、字体、超链接、图片。。)
  • 2017-05-26硅谷社交7--添加联系人--接收添加好友邀请,硅谷7--
  • 2017-05-26ConfigParser写配置文件乱序问题
  • 2017-05-26HBase Java编程示例
  • 2017-05-26Android天天数钱游戏项目源码,android项目源码
  • 2017-05-26初探ListView,初探网
  • 2017-05-26Android中点击事件的实现方式,android事件
  • 2017-05-26实现在矩形框中输入文字,可以显示剩余字数的功能,矩形字数

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • andriod Java中度转度分秒,andriodjava分秒
    • Android 上千实例源码分析以及开源分析
    • android拦截短信并屏蔽系统的Notification,gsm短信拦截系统
    • iTween基础之功能简介,itween功能简介
    • Bottom Sheet
    • HTPC+NAS+ROUTER(wifi)的实现
    • android fragment生命周期应用
    • 53.Android Canvas Paint相关内容介绍
    • Android开发学习-view,android开发-view
    • android设备使用usb串口传输数据,android设备usb串口

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有