• 补间动画 使用详解


    极力推荐文章:欢迎收藏
    Android 干货分享

    阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android

    本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:

    1. 透明动画 AlphaAnimation
    2. 旋转动画 ScaleAnimation
    3. 缩放动画 RotateAnimation
    4. 平移动画 TranslateAnimation
    5. 动画集合 AnimationSet
    6. XML 实现4种动画效果

    动画在Android 开发中经常会被用到,好的动画效果可以达到事半功倍的效果。补间动画也是Android中常用的动画之一,相对属性动画来说,补间动画的点击事件不会跟着动画的位置变化而变化。后续将逐渐被属性动画替代。

    1. 透明动画

    • AlphaAnimation
    		/**
    		 * 透明度动画AlphaAnimation 从不透明到完全透明
    		 * **/
    		// 起始透明度 到结束透明度 不透明到透明(1f-0f)
    		AlphaAnimation alphaAnimation = new AlphaAnimation(0.0f, 1.0f);
    		// 动画执行时间
    		alphaAnimation.setDuration(4000);
    		// 设置重复次数
    		alphaAnimation.setRepeatCount(2);
    		// 重复模式
    		alphaAnimation.setRepeatMode(Animation.RESTART);
    		// alphaAnimation.setRepeatMode(Animation.REVERSE);
    		// 保持结束时候的状态
    		alphaAnimation.setFillAfter(true);
    		mImageView.startAnimation(alphaAnimation);
    
    

    2. 旋转动画

    • RotateAnimation
    
    		/**
    		 * 旋转动画RotateAnimation,旋转360度
    		 **/
    
    		RotateAnimation rotateAnimation = new RotateAnimation(0, 360);
    		rotateAnimation.setDuration(2000);
    		rotateAnimation.setRepeatCount(2);
    		mImageView.startAnimation(rotateAnimation);
    
    

    3. 缩放动画

    • ScaleAnimation
    		/**
    		 * 缩放动画 ScaleAnimation使用方法 缩放2倍
    		 * */
    		ScaleAnimation scaleAnimation = new ScaleAnimation(1, 2, 1, 2);
    		scaleAnimation.setDuration(2000);
    		scaleAnimation.setRepeatCount(2);
    		scaleAnimation.setRepeatMode(Animation.RESTART);
    		mImageView.startAnimation(scaleAnimation);
    

    4. 平移动画

    • TranslateAnimation
    		/***
    		 * 平移动画TranslateAnimation 从x,y 轴 从(0,0)平移到(300,200) *
    		 **/
    		TranslateAnimation translateAnimation = new TranslateAnimation(0,
    				300.f, 0, 200.f);
    		translateAnimation.setDuration(2000);
    		translateAnimation.setRepeatCount(2);
    		translateAnimation.setRepeatMode(Animation.RESTART);
    		mImageView.startAnimation(translateAnimation);
    
    

    5. 动画集合

    • AnimationSet
    	/***
    		 * 动画集合使用效果如下:
    		 * ***/
    		AnimationSet sets = new AnimationSet(true);
    
    		AlphaAnimation alphaAnimation1 = new AlphaAnimation(0.0f, 1.0f);
    		TranslateAnimation translateAnimation1 = new TranslateAnimation(0,
    				100.f, 0, 100.f);
    		RotateAnimation rotateAnimation1 = new RotateAnimation(0, 360);
    		ScaleAnimation scaleAnimation1 = new ScaleAnimation(1, 2, 1, 2);
    
    		// 将动画添加到set集合中
    		sets.addAnimation(alphaAnimation1);
    		sets.addAnimation(translateAnimation1);
    		sets.addAnimation(rotateAnimation1);
    		sets.addAnimation(scaleAnimation1);
    
    		sets.setDuration(4000);
    		sets.setRepeatCount(2);
    		sets.setRepeatMode(Animation.RESTART);
    		mImageView.startAnimation(sets);
    
    

    6. XML 实现动画效果

    • 1.动画的XML文件所属的res/anim/hyperspace_jump.xml

    XML 实现动画效果

    • 2.为图片Load 动画 xml文件

    为图片Load xml 文件

    至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

    微信关注公众号:  程序员Android,领福利

  • 相关阅读:
    bootstrap-select.js 下拉框多选后动态赋值
    vs2012 未找到与约束 ContractName Microsoft.VisualStudio.Utilities.IContentTy...
    jquery 报错 Uncaught TypeError: Illegal invocation
    火狐浏览器的RestClient,接口测试,Post提交数据
    destoon二次开发 操作数据库可运行示例
    ZendStudio13 PHP调试环境快速配置
    VR发展的最大障碍在于内容?
    优秀博文链接
    LoopMatrix
    串口输出float型数据
  • 原文地址:https://www.cnblogs.com/wangjie1990/p/11323705.html
Copyright © 2020-2023  润新知