Android Studio实现简单补间动画

本文实例为大家分享了Android Studio实现简单补间动画的具体代码,供大家参考,具体内容如下

1、动画发在res/anim/,创建new/Directory

2、创建动画,  平移,缩放,旋转,改变透明度

//平移
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
 
<translate
 
    android:fromXDelta="0.0"
    android:fromYDelta="0.0"
    android:toXDelta="100"
    android:toYDelta="0.0"
    android:repeatMode="reverse"
    android:repeatCount="infinite"
    android:duration="4000"
    />
 
</set>

//缩放
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
 
    android:repeatMode="reverse"
    android:repeatCount="infinite"
    android:duration="3000"
    android:fromXScale="1.0"
    android:fromYScale="1.0"
    android:toXScale="0.5"
    android:toYScale="0.5"
    android:pivotX="50%"
    android:pivotY="50%"/>
 
</set>

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

//改变透明度
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
    android:interpolator="@android:anim/linear_interpolator"
    android:repeatMode="reverse"
    android:repeatCount="infinite"
    android:duration="1000"
    android:fromAlpha="1.0"
    android:toAlpha="0.0"/>
 
</set>

3,布局activity_main.xml,点击按钮图片发送变化,图片需要自己下载添加44

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    android:layout_weight="1"
    android:orientation="vertical"
    tools:context=".MainActivity">
 
      <ImageView
          android:layout_width="300dp"
          android:layout_height="300dp"
          android:layout_centerInParent="true"
          android:layout_gravity="center"
          android:id="@+id/fk"
          android:src="@drawable/ff"/>
 
   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="match_parent"
      android:orientation="horizontal">
 
      <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="平移"
       android:textSize="24sp"
       android:layout_weight="1"
        android:gravity="center"
          android:layout_gravity="bottom"
       android:id="@+id/but"/>
      <Button
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="缩放"
          android:textSize="24sp"
          android:layout_gravity="bottom"
          android:layout_weight="1"
          android:gravity="center"
          android:id="@+id/but1"/>
      <Button
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="旋转"
          android:textSize="24sp"
          android:gravity="center"
          android:layout_gravity="bottom"
          android:layout_weight="1"
          android:id="@+id/but2"/>
      <Button
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="改变透明度"
          android:textSize="24sp"
          android:gravity="center"
          android:layout_gravity="bottom"
          android:layout_weight="1"
          android:id="@+id/but3"/>
   </LinearLayout>
 
</RelativeLayout>

4、逻辑代码MainActivity

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private ImageView imageView;
    private Button button;
    private Button button1;
    private Button button2;
    private Button button3;
 
    @RequiresApi(api = Build.VERSION_CODES.N)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //要用控件,定id
        button=findViewById(R.id.but);
        button1=findViewById(R.id.but1);
        button2=findViewById(R.id.but2);
        button3=findViewById(R.id.but3);
 
        imageView=findViewById(R.id.fk);
        button.setOnClickListener(this);
        button1.setOnClickListener(this);
        button2.setOnClickListener(this);
        button3.setOnClickListener(this);
 
    }
 
    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.but:
                Animation translation= AnimationUtils.loadAnimation(this,R.anim.translate);
                imageView.startAnimation(translation);
                break;
            case R.id.but1:
                Animation scale= AnimationUtils.loadAnimation(this,R.anim.scale);
                imageView.startAnimation(scale);
                break;
            case R.id.but2:
                Animation rotate= AnimationUtils.loadAnimation(this,R.anim.rotate);
                imageView.startAnimation(rotate);
                break;
            case R.id.but3:
                Animation alpha= AnimationUtils.loadAnimation(this,R.anim.alpha);
                imageView.startAnimation(alpha);
                break;
        }
 
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android补间动画基本使用(位移、缩放、旋转、透明)

    本文讲述了Android补间动画基本使用(位移.缩放.旋转.透明).分享给大家供大家参考,具体如下: 补间动画 原形态变成新形态时为了过渡变形过程,生成的动画就叫补间动画 位移.旋转.缩放.透明 位移: 参数10指的是X的起点坐标,但不是指屏幕x坐标为10的位置,而是imageview的 真实X + 10 参数150指的是X的终点坐标,它的值是imageview的 真实X + 150 //创建为位移动画对象,设置动画的初始位置和结束位置 TranslateAnimation ta = new T

  • Android动画之补间动画(Tween Animation)基础学习

    前言 之前说过了在Android中,动画Animation的实现有两种方式:Tween Animation(渐变动画)和Frame Animation(帧动画).渐变动画是通过对场景里的对象不断做图像变换(平移.缩放.旋转等)产生动画效果.帧动画则是通过顺序播放事先准备好的图像来产生动画效果,和电影类似. 小编也和大家分享了逐帧动画的基础知识,下面我们就来学习下Android中逐帧动画的基础知识. 原理 : 给出开始和结束两个关键帧,两个关键帧之间的插补帧是由计算机自动运算而得到的. 分类 :

  • Android旋转、平移、缩放和透明度渐变的补间动画

    android实现旋转.平移.缩放和透明度渐变的补间动画,具体实现如下: 1.在新建项目的res目录中,创建一个名为anim的目录,并在该目录中创建实现旋转.平移.缩放和透明度渐变的动画资源文件. 透明度渐变的动画资源文件anim_alpha.xml(完全不透明->完全透明->完全不透明) <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://sch

  • Android动画学习笔记之补间动画

    本文实例为大家分享了Android补间动画展示的具体代码,供大家参考,具体内容如下 首先看看补间动画的共同属性: Duration:动画持续的时间(单位:毫秒)   fillAfter:设置为true,动画转化在动画被结束后被应用  fillBefore:设置为true,动画转化在动画开始前被应用  interpolator:动画插入器(加速.减速插入器)  repeatCount:动画重复的次数  repeatMode:顺序动画(restart)/倒序动画(reverse)  startOff

  • Android动画之补间动画(Tween Animation)实例详解

    本文实例讲述了Android动画之补间动画.分享给大家供大家参考,具体如下: 前面讲了<Android动画之逐帧动画(Frame Animation)>,今天就来详细讲解一下Tween动画的使用. 同样,在开始实例演示之前,先引用官方文档中的一段话: Tween动画是操作某个控件让其展现出旋转.渐变.移动.缩放的这么一种转换过程,我们称为补间动画.我们可以以XML形式定义动画,也可以编码实现. 如果以XML形式定义一个动画,我们按照动画的定义语法完成XML,并放置于/res/anim目录下,文

  • Android帧动画、补间动画、属性动画用法详解

    在安卓开发中,经常会使用到一些动画,那么在开发中,如何使用这些动画呢? 帧动画:不是针对View做出一些形状上的变化,而是用于播放一张张的图片,例如一些开机动画,类似于电影播放,使用的是AnimationDrawable来播放帧动画 res/drawable <?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.androi

  • Android动画系列之帧动画和补间动画的示例代码

    Android 提供三种动画:帧动画.补间动画和属性动画,本篇文章介绍帧动画以及补间动画的使用,属性动画的使用将在后面的文章中分享,那就来复习一下这两种动画的使用吧. FrameAnimation FrameAnimation 即逐帧动画,通俗来说就是按照图片动作顺序依次播放来形成动画,创建 FrameAnimation 可用 xml 定义也可直接使用代码创建. xml创建帧动画 在 res/drawable 文件夹下创建一个 drawable 文件,使用 animation-list 标签,具

  • Android控件Tween动画(补间动画)实现方法示例

    本文实例讲述了Android控件Tween动画(补间动画)实现方法.分享给大家供大家参考,具体如下: Android动画中的Tween动画:是把控件对象不断的进行图像变化来产生旋转.平移.放缩和渐变等动画效果. /** * 控件Tween动画 * * @description: * @author ldm * @date 2016-6-22 下午5:26:24 */ public class TweenActivity extends Activity { private SeekBar see

  • Android Studio实现补间动画

    本文实例为大家分享了Android Studio实现补间动画的具体代码,供大家参考,具体内容如下 补间动画是给出初始位置和结束位置,中间由系统自动补充的动画 1.补间动画的配置文件:scale.xml 2.布局文件:animal_patching.xml 3.main.java sacle.xml <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schem

  • android 帧动画,补间动画,属性动画的简单总结

    帧动画--FrameAnimation 将一系列图片有序播放,形成动画的效果.其本质是一个Drawable,是一系列图片的集合,本身可以当做一个图片一样使用 在Drawable文件夹下,创建animation-list为根节点的资源文件 <animation-list android:oneshot="false"> <item android:drawable="@drawable/img1" android:duration="100

随机推荐