Android属性动画小练习(简单实现旋转平移淡入淡出缩放动画效果)

相逢意气为君饮,系马高楼垂柳边。这篇文章主要讲述Android属性动画小练习(简单实现旋转平移淡入淡出缩放动画效果)相关的知识,希望能为你提供帮助。
 
Android属性动画小练习(简单实现旋转、平移、淡入淡出、缩放动画效果)
【Android属性动画小练习(简单实现旋转平移淡入淡出缩放动画效果)】 
——安德风QQ1652102745
 
 
一、效果演示

Android属性动画小练习(简单实现旋转平移淡入淡出缩放动画效果)

文章图片

 
二、布局设计activity_main.xml
 
1 < ?xml version="1.0" encoding="utf-8"?> 2 < androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 3xmlns:app="http://schemas.android.com/apk/res-auto" 4xmlns:tools="http://schemas.android.com/tools" 5android:layout_width="match_parent" 6android:layout_height="match_parent" 7tools:context=".MainActivity"> 8 9< Button 10android:id="@+id/btn2" 11android:layout_width="wrap_content" 12android:layout_height="wrap_content" 13android:text="使图片围绕X轴旋转 " 14android:onClick="myClick" 15android:textSize="24sp" 16app:layout_constraintEnd_toEndOf="parent" 17app:layout_constraintHorizontal_bias="0.497" 18app:layout_constraintStart_toStartOf="parent" 19app:layout_constraintTop_toBottomOf="@+id/btn1" /> 20 21< Button 22android:id="@+id/btn4" 23android:layout_width="wrap_content" 24android:layout_height="wrap_content" 25android:text="使文字可以飞入 " 26android:onClick="myClick" 27android:textSize="24sp" 28app:layout_constraintEnd_toEndOf="parent" 29app:layout_constraintStart_toStartOf="parent" 30app:layout_constraintTop_toBottomOf="@+id/btn3" /> 31 32< Button 33android:id="@+id/btn1" 34android:layout_width="380dp" 35android:layout_height="48dp" 36android:onClick="myClick" 37android:text="图片先顺时针旋转再逆时针旋转" 38android:textSize="24sp" 39app:layout_constraintBottom_toBottomOf="parent" 40app:layout_constraintEnd_toEndOf="parent" 41app:layout_constraintHorizontal_bias="0.516" 42app:layout_constraintStart_toStartOf="parent" 43app:layout_constraintTop_toTopOf="parent" 44app:layout_constraintVertical_bias="0.734" /> 45 46< Button 47android:id="@+id/btn3" 48android:layout_width="wrap_content" 49android:layout_height="wrap_content" 50android:onClick="myClick" 51android:text="使图片可以横向放大2倍再还原 " 52android:textSize="24sp" 53app:layout_constraintEnd_toEndOf="parent" 54app:layout_constraintHorizontal_bias="0.28" 55app:layout_constraintStart_toStartOf="parent" 56app:layout_constraintTop_toBottomOf="@+id/btn2" /> 57 58< ImageView 59android:id="@+id/img" 60android:layout_width="161dp" 61android:layout_height="123dp" 62android:layout_marginTop="96dp" 63app:layout_constraintEnd_toEndOf="parent" 64app:layout_constraintHorizontal_bias="0.486" 65app:layout_constraintStart_toStartOf="parent" 66app:layout_constraintTop_toTopOf="parent" 67app:srcCompat="@drawable/p" /> 68 69< TextView 70android:id="@+id/tv" 71android:layout_width="wrap_content" 72android:layout_height="wrap_content" 73android:layout_marginBottom="64dp" 74android:text="草莓" 75android:textSize="30sp" 76android:textStyle="bold" 77app:layout_constraintBottom_toTopOf="@+id/btn1" 78app:layout_constraintEnd_toEndOf="parent" 79app:layout_constraintHorizontal_bias="0.498" 80app:layout_constraintStart_toStartOf="parent" 81app:layout_constraintTop_toBottomOf="@+id/img" 82app:layout_constraintVertical_bias="0.837" /> 83 84 < /androidx.constraintlayout.widget.ConstraintLayout>

 
三、功能实现MainActivity.java
1 package com.example.myapplication; 2 3 import androidx.appcompat.app.AppCompatActivity; 4 5 import android.animation.AnimatorSet; 6 import android.animation.ObjectAnimator; 7 import android.app.Activity; 8 import android.os.Bundle; 9 import android.view.View; 10 import android.view.animation.AnimationSet; 11 import android.widget.Button; 12 import android.widget.ImageView; 13 import android.widget.TextView; 14 15 public class MainActivity extends AppCompatActivity { 16 ImageView img; //图片控件声明 17 TextView tv; //文本标签声明 18 Button btn1,btn2,btn3,btn4; //声明按钮1/2/3/4 19 20@Override 21protected void onCreate(Bundle savedInstanceState) { 22super.onCreate(savedInstanceState); 23setContentView(R.layout.activity_main); 24img=findViewById(R.id.img); //绑定图片控件ID 25tv=findViewById(R.id.tv); //绑定文本控件ID 26btn1=findViewById(R.id.btn1); //绑定按钮1控件ID 27btn2=findViewById(R.id.btn2); //绑定按钮2控件ID 28btn3=findViewById(R.id.btn3); //绑定按钮3控件ID 29btn4=findViewById(R.id.btn4); //绑定按钮4控件ID 30} 31 //对应按钮实现功能 32public void myClick(View view) { 33switch (view.getId()){ 34 35//实现使图片先顺时针旋转再逆时针旋转按钮功能 36case R.id.btn1: 37ObjectrotationAnim(); //先顺时针360度旋转然后逆时针360度旋转动画的函数 38break; 39//实现使图片围绕X轴旋转按钮功能 40case R.id.btn2: 41ObjectrotationXAnim(); //实现使图片围绕X轴旋转按钮的函数 42break; 43//实现使图片可以横向放大2倍再还原按钮功能 44case R.id.btn3: 45ObjectscaleAnim(); 46break; 47//实现使文字可以飞入按钮功能 48case R.id.btn4: 49ObjectfeiruAnimator(); 50break; 51 52} 53 54} 55//实现使文字可以飞入按钮功能 56private void ObjectfeiruAnimator() { 57ObjectAnimator animator=ObjectAnimator.ofFloat(tv,"translationX",300,0); //文字标签X轴平移 58ObjectAnimator animator2=ObjectAnimator.ofFloat(tv,"translationY",200,0); //文字标签Y轴平移 59ObjectAnimator animator3=ObjectAnimator.ofFloat(tv,"alpha",0.0F,1.0F); //设置文字标签淡入淡出效果(由透明到不透明) 60animator2.setDuration(3000); //设置文字标签X轴平移持续时长3000毫秒 61animator.setDuration(3000); //设置文字标签Y轴平移持续时长3000毫秒 62animator3.setDuration(4000); //设置文字标签淡入淡出持续时长4000毫秒 63AnimatorSet animatorSet=new AnimatorSet(); //创建动画集 64animatorSet.playTogether(animator,animator2,animator3); //组合动画效果 65 //animatorSet.setDuration(5000); 66animatorSet.start(); //开始执行动画(文本飞入效果) 67} 68 69//实现使图片可以横向放大2倍再还原按钮功能 70private void ObjectscaleAnim() { 71ObjectAnimator animator=ObjectAnimator.ofFloat(img,"ScaleX",1.0F,2.0F,1.0F); //图片默认X轴不变然后放大2倍然后恢复原样 72animator.setDuration(4000); //缩放动画持续时间为4000毫秒 73animator.start(); //开始执行动画(图片横向放大2倍动画) 74} 75 76//实现使图片围绕X轴旋转按钮功能 77private void ObjectrotationXAnim() { 78ObjectAnimator animator=ObjectAnimator.ofFloat(img,"rotationX",0.0F,180.0F,00.0F); //图片默认X轴旋转 79animator.setDuration(2000); //旋转动画持续时间为2000毫秒 80animator.start(); //开始执行动画(图片X轴旋转) 81} 82 83//实现先顺时针360度旋转然后逆时针360度旋转动画功能 84private void ObjectrotationAnim() { 85 86//构造ObjectAnimator对象的方法 87ObjectAnimator animator = ObjectAnimator.ofFloat(img, "rotation", 0.0F, 360.0F,0.0F,-360.0F); //设置先顺时针360度旋转然后逆时针360度旋转动画 88animator.setDuration(5000); //设置旋转时间 89animator.start(); //开始执行动画(顺时针旋转动画) 90} 91 }

 
 

    推荐阅读