zoukankan      html  css  js  c++  java
  • 补间动画 使用详解

    极力推荐文章:欢迎收藏
    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,领福利

  • 相关阅读:
    LeetCode 1109 航班预定统计
    leetcode 138 复制带随机指针的链表
    maven导入org.apache.pdfbox
    Intellij Idea 通过svn或者git提交代码时速度慢的解决办法
    java LocalDateTime 加减当前时间
    git命令--拉取代码和切换分支
    Intellij IDEA插件Free Mybatis plugin
    MySQL 生成随机字符串 uuid
    最新版Navicat Premium v15.0.26 中文破解
    算法——二分法查找
  • 原文地址:https://www.cnblogs.com/wangjie1990/p/11323705.html
Copyright © 2011-2022 走看看