补间动画android

1.AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.glsite.tweenanim"><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity">  //代码方式实现<intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activity android:name=".MainActivity2"/> //布局方式实现补间动画</application></manifest>

2.activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:orientation="vertical"><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="alpha"android:text="alpha"/><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="scale"android:text="scale"/><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="trans"android:text="trans"/><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="rotate"android:text="rotate"/><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="set"android:text="set"/><ImageViewandroid:id="@+id/iv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@mipmap/ic_launcher"/></LinearLayout>

3.MainActivity.java 代码方式实现

package com.glsite.tweenanim;import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.view.animation.TranslateAnimation;
import android.widget.ImageView;public class MainActivity extends AppCompatActivity {private ImageView mIv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mIv = findViewById(R.id.iv);}/*** 透明度变化的动画* @param view*/public void alpha(View view) {//从0.0f的透明度到1.0f的透明度变化;完全不透明到完全透明AlphaAnimation aa = new AlphaAnimation(0.0f, 1.0f);aa.setDuration(2000);//延时 表示持续的时间 2秒aa.setRepeatCount(2);//重复的次数 2次aa.setRepeatMode(Animation.RESTART);//模式 重新开始mIv.startAnimation(aa);//启动动画}/*** 缩放的动画* @param view*/public void scale(View view) {//第一第二参数是指X轴的参数变化;第三参数相对于他自己的,第四参数指的是y轴的参数变化,第五参数相对于他自己的,第6参数是指X轴中心点位置,第7参数相对于他自己的,第8参数是指y轴中心点位置ScaleAnimation sa = new ScaleAnimation(0.0f, 2.0f, 0.0f, 2.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);sa.setDuration(2000);//延时 表示持续的时间 2秒sa.setRepeatCount(2);//重复的次数 2次sa.setRepeatMode(Animation.REVERSE);//模式 翻转mIv.startAnimation(sa);//启动动画}/*** 位移的动画* @param view*/public void trans(View view) {//第一参数相对于他自己的,第二参数是指开始X轴的位置值,第3参数是相对于他自己的,第4参数是指到x轴的位置值,第5参数相对于他自己的,第6参数是指开始y轴的位置值,第7参数相对于他自己的,第8参数是指到y轴的位置值,TranslateAnimation ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF, -0.5f, Animation.RELATIVE_TO_SELF, 0.5f,Animation.RELATIVE_TO_SELF, -0.5f, Animation.RELATIVE_TO_SELF, 0.5f);ta.setDuration(2000);//延时 表示持续的时间 2秒ta.setRepeatCount(2);//重复的次数 2次ta.setRepeatMode(Animation.REVERSE);//模式 翻转mIv.startAnimation(ta);//启动动画}/*** 旋转的动画* @param view*/public void rotate(View view) {//第一参数与第二参数是从哪个角度到哪个角度,第三参相对于他自己的   第四参数 第五参数 第六参数RotateAnimation ra = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);ra.setDuration(2000);//延时 表示持续的时间 2秒ra.setRepeatCount(2);//重复的次数 3次 从0 开始的ra.setRepeatMode(Animation.REVERSE);// RepeatCount 0是默认值,RepeatCount值是2,动画持续3次mIv.startAnimation(ra);}/*** 动画集合的动画* @param view*/public void set(View view) {AnimationSet set = new AnimationSet(false);TranslateAnimation ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF, -0.5f, Animation.RELATIVE_TO_SELF, 0.5f,Animation.RELATIVE_TO_SELF, -0.5f, Animation.RELATIVE_TO_SELF, 0.5f);ta.setDuration(2000);//延时 表示持续的时间 2秒ta.setRepeatCount(2);//重复的次数 2次ta.setRepeatMode(Animation.REVERSE);RotateAnimation ra = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);ra.setDuration(2000);//延时 表示持续的时间 2秒ra.setRepeatCount(2);//重复的次数 2次ra.setRepeatMode(Animation.REVERSE);// RepeatCount 0是默认值,RepeatCount值是2,动画持续3次ScaleAnimation sa = new ScaleAnimation(0.0f, 2.0f, 0.0f, 2.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);sa.setDuration(2000);//延时 表示持续的时间 2秒sa.setRepeatCount(2);//重复的次数 2次sa.setRepeatMode(Animation.REVERSE);set.addAnimation(sa);set.addAnimation(ta);set.addAnimation(ra);mIv.startAnimation(set);}
}

4.新建 TweenAnim\app\src\main\res\anim目录;   布局方式实现补间动画

目录名anim不要写错了;

5.在anim目录下新建布局文件 布局方式实现补间动画

5.1 alpha.xml

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"android:fromAlpha="0"android:toAlpha="1.0"android:repeatCount="2"android:repeatMode="reverse"android:duration="2000"></alpha>

5.2 rotate.xml

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"android:duration="2000"android:fromDegrees="0"android:toDegrees="360"android:pivotX="50%"android:pivotY="50%"android:repeatCount="2"android:repeatMode="reverse"></rotate>

5.3 scale.xml

<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"android:duration="2000"android:fromXScale="0.0"android:fromYScale="0.0"android:pivotX="50%"android:pivotY="50%"android:toXScale="2.0"android:toYScale="2.0"android:repeatCount="2"android:repeatMode="reverse"></scale>

5.4 set.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><rotateandroid:duration="2000"android:fromDegrees="0"android:toDegrees="360"android:pivotX="50%"android:pivotY="50%"android:repeatCount="2"android:repeatMode="reverse"></rotate><scaleandroid:duration="2000"android:fromXScale="0.0"android:fromYScale="0.0"android:pivotX="50%"android:pivotY="50%"android:toXScale="2.0"android:toYScale="2.0"android:repeatCount="2"android:repeatMode="reverse"></scale><translateandroid:fromXDelta="-50%"android:fromYDelta="-50%"android:toXDelta="50%"android:toYDelta="50%"android:duration="2000"android:repeatCount="2"android:repeatMode="reverse"></translate></set>

5.5 trans.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"android:fromXDelta="-50%"android:fromYDelta="-50%"android:toXDelta="50%"android:toYDelta="50%"android:duration="2000"android:repeatCount="2"android:repeatMode="reverse"></translate>

5.MainActivity2.java 布局方式实现补间动画

package com.glsite.tweenanim;import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;public class MainActivity2 extends AppCompatActivity {private ImageView mIv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mIv = findViewById(R.id.iv);}/*** 透明度变化的动画* @param view*/public void alpha(View view) {//第二个参数是动画资源idAnimation aa = AnimationUtils.loadAnimation(this, R.anim.alpha);mIv.startAnimation(aa);}/*** 缩放的动画* @param view*/public void scale(View view) {Animation sa = AnimationUtils.loadAnimation(this, R.anim.scale);mIv.startAnimation(sa);}/*** 位移的动画* @param view*/public void trans(View view) {Animation ta = AnimationUtils.loadAnimation(this, R.anim.trans);mIv.startAnimation(ta);}/*** 旋转的动画* @param view*/public void rotate(View view) {Animation ra = AnimationUtils.loadAnimation(this, R.anim.rotate);mIv.startAnimation(ra);}/*** 动画集合的动画* @param view*/public void set(View view) {Animation set = AnimationUtils.loadAnimation(this, R.anim.set);mIv.startAnimation(set);}
}

补间动画android相关推荐

  1. Android动画之帧动画和补间动画

    Android系统提供三种动画:帧动画.补间动画和属性动画.这里先分析总结帧动画和补间动画. FrameAnimation 帧动画,通俗来说就是按照图片动作顺序依次播放来形成动画,创建帧动画可以用 x ...

  2. Android 补间动画(Tween Animation)

    Tween Animation(补间动画): Tween动画,通过对View的内容进行一系列的图形变换 (包括平移.缩放.旋转.改变透明度)来实现动画效果.动画效果的定义可以采用XML来做也可以采用编 ...

  3. 每日一道面试题(第7期)---Android补间动画与属性动画的区别

    零零碎碎的东西总是记不长久,仅仅学习别人的文章也只是他人咀嚼后留下的残渣.无意中发现了这个每日一道面试题,想了想如果只是简单地去思考,那么不仅会收效甚微,甚至难一点的题目自己可能都懒得去想,坚持不下来 ...

  4. Android之帧动画与补间动画的使用

    前言 在日常开发中,我们有时候需要一些好看的动画效果,这时可以充分利用Android提供的这几种动画来实现, Android提供了3种类型的动画: 补间动画:补间动画可以应用于View,让你可以定义一 ...

  5. Android补间动画笔记

    布局文件: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns: ...

  6. Android中四种补间动画的使用示例(附代码下载)

    场景 Android中四种补间动画. 透明度渐变动画 旋转动画 缩放动画 平移动画 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的 ...

  7. Android动画 详解(一 补间动画)

    2019独角兽企业重金招聘Python工程师标准>>> 打算整理下 android动画方面的知识,嗯  开始 一.android补间动画 分为四大类 alpha(透明度渐变).sca ...

  8. Android学习—补间动画(渐变动画)

    使用xml的方式设置动画属性 1 <?xml version="1.0" encoding="utf-8"?> 2 <set xmlns:an ...

  9. Android 高级编程【6个实战案例(附源码):刮刮卡、补间动画、逐帧动画、Fragment、RecyclerView、下拉刷新】

    目   录 刮刮卡案例[ScratchCard] 结构图 activity_main.xml MainActivity.java 运行效果图 补间动画(Tween Animation) 逐帧动画(Fr ...

最新文章

  1. 复习03统计学习方法(K近邻KNN)---图片版
  2. linux服务器上部署项目,还报路径错误,切记分隔符注意点
  3. Html.RenderPartial与Html.RenderAction
  4. InnoDB Spin rounds per wait在32位机器上可能为负
  5. ETAG is returned by the first read
  6. C++Primer学习笔记:第8章 IO库
  7. Mybaitis JdbcType 和javaType
  8. python代理池好难啊_新人不会自己搭建代理池?快来引用大佬的
  9. Arduino PID自整定库
  10. Spring CGLlB动态代理
  11. php中购物车功能,php如何实现购物车功能
  12. 大神总结的机器学习的数学基础,掌握这些足够
  13. datagrid数据导出到excel文件给客户端下载的几种方法(转)
  14. cad放大_如何玩转CAD看图?1分钟,一款完全免费的高效软件,解决所有看图
  15. 文本挖掘学习笔记(二):文档信息向量化与主题关键词提取
  16. 地震了,地震了!!!
  17. git - 1.基础
  18. 最新公布!“中国开发者大调查”第二批中奖名单出炉啦
  19. 多尺度R-CNN(2): Inside-Outside Net: Detecting Objects in Context with Skip Pooling and Recurrent Neural
  20. 李炎恢 js教程 拖拽上 思路解析

热门文章

  1. SRM 567 div2
  2. Polly简介 — 2. 弹性策略
  3. NPAPI插件开发学习:NPAPI和NPRuntime的介绍
  4. Git 的BUG小结
  5. 如何在没有域的环境中搭建AlwaysOn(二)
  6. 51nod 1050循环数组最大字段和
  7. 02~ 一步一步教你使用 SVN之SVN 的介绍
  8. hdu1824-Let's go home:图论2-SAT
  9. HTML5 学习(1) -- 介绍
  10. 二进制数据(Image类型)从一个表存入另一个表