012 Android 动画效果(补间动画)

1.介绍

补间动画开发者只需指定动画开始,以及动画结束"关键帧", 而动画变化的"中间帧"则由系统计算并补齐!

012 Android 动画效果(补间动画)

2.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"
    android:orientation="vertical"
    tools:context=".MainActivity">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:id="@+id/bt_touming"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="透明" />

        <Button
            android:id="@+id/bt_xuanzhuan"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="旋转" />

        <Button
            android:id="@+id/bt_suofang"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="缩放" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:orientation="horizontal">

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            app:srcCompat="@mipmap/ic_launcher" />
    </LinearLayout>
</LinearLayout>

3.java后台

package com.example.administrator.test60donghua;

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.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

    Button bt_touming;
    Button bt_xuanzhuan;
    Button bt_suofang;
    ImageView iv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt_touming=findViewById(R.id.bt_touming);
        bt_xuanzhuan=findViewById(R.id.bt_xuanzhuan);
        bt_suofang=findViewById(R.id.bt_suofang);
        iv=findViewById(R.id.imageView);

        //透明动画
        bt_touming.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //创建透明动画,1.0为完全不透明,0.0为完全透明
                AlphaAnimation aa=new AlphaAnimation(1.0f,0.0f);
                aa.setDuration(2000);//设置动画执行的时间
                aa.setRepeatCount(1); //设置动画重复的次数
                aa.setRepeatMode(Animation.REVERSE); //设置重复的模式
                iv.startAnimation(aa); //开始执行动画
            }
        });

        //旋转效果
        bt_xuanzhuan.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                RotateAnimation ra=new RotateAnimation(0,360,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
                ra.setDuration(2000);//设置动画执行的时间
                ra.setRepeatCount(1); //设置动画重复的次数
                ra.setRepeatMode(Animation.REVERSE); //设置重复的模式
                iv.startAnimation(ra); //开始执行动画
            }
        });

        bt_suofang.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ScaleAnimation sa=new ScaleAnimation(1.0f,2.0f,1.0f,2.0f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
                sa.setDuration(2000);//设置动画执行的时间
                sa.setRepeatCount(1); //设置动画重复的次数
                sa.setRepeatMode(Animation.REVERSE); //设置重复的模式
                iv.startAnimation(sa); //开始执行动画
            }
        });


    }
}

4.效果图

012 Android 动画效果(补间动画)

上一篇:[Git] 012 rm 命令的补充


下一篇:python for循环的遍历