700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android的Animator动画(平移 渐隐 旋转 缩放)

Android的Animator动画(平移 渐隐 旋转 缩放)

时间:2022-04-11 22:36:46

相关推荐

Android的Animator动画(平移 渐隐 旋转 缩放)

工程目录:

Activity

package com.example.animate;import androidx.appcompat.app.ActionBar;import androidx.appcompat.app.AppCompatActivity;import android.animation.AnimatorSet;import android.animation.ObjectAnimator;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends AppCompatActivity implements View.OnClickListener{private Button btn_translation,btn_alpha,btn_rotation,btn_scale;private TextView tv;private ImageView iv,iv2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();}private void init(){ActionBar bar=getSupportActionBar();if(bar!=null)bar.hide();tv=findViewById(R.id.tv);iv=findViewById(R.id.iv);iv2=findViewById(R.id.iv2);btn_translation=findViewById(R.id.btn_translation);btn_alpha=findViewById(R.id.btn_alpha);btn_rotation=findViewById(R.id.btn_rotation);btn_scale=findViewById(R.id.btn_scale);btn_translation.setOnClickListener(this);btn_alpha.setOnClickListener(this);btn_rotation.setOnClickListener(this);btn_scale.setOnClickListener(this);}private void animate(){int x0,y0,x1,y1;int location[]=new int[2],location2[]=new int[2];iv.getLocationInWindow(location);iv2.getLocationInWindow(location2);x0=location[0];y0=location[1];x1=location2[0];y1=location2[1];ObjectAnimator objX=ObjectAnimator.ofFloat(iv,"translationX",0f,x1-x0,0f);ObjectAnimator objY=ObjectAnimator.ofFloat(iv,"translationY",0f,y1-y0,0f);AnimatorSet set=new AnimatorSet();set.playTogether(objX,objY);set.setDuration(1000);set.start();}private void animate2(){ObjectAnimator obj=ObjectAnimator.ofFloat(tv,"alpha",1,0,1);obj.setDuration(1000);obj.start();}private void animate3(){ObjectAnimator obj=ObjectAnimator.ofFloat(tv,"rotation",0,180,270,360);ObjectAnimator objX=ObjectAnimator.ofFloat(tv,"rotationX",0,180,270,360);ObjectAnimator objY=ObjectAnimator.ofFloat(tv,"rotationY",0,180,270,360);AnimatorSet set=new AnimatorSet();set.playSequentially(obj,objX,objY);set.setDuration(2000);set.start();}private void animate4(){ObjectAnimator objX=ObjectAnimator.ofFloat(tv,"scaleX",1,2,3,2,1);ObjectAnimator objY=ObjectAnimator.ofFloat(tv,"scaleY",1,2,3,2,1);AnimatorSet set=new AnimatorSet();set.playSequentially(objX,objY);set.setDuration(1000);set.start();}@Overridepublic void onClick(View v) {switch(v.getId()){case R.id.btn_translation:animate();break;case R.id.btn_alpha:animate2();break;case R.id.btn_rotation:animate3();break;case R.id.btn_scale:animate4();break;}}}

Layout

<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><Buttonandroid:id="@+id/btn_translation"android:layout_width="match_parent"android:layout_height="wrap_content"android:textAllCaps="false"android:text="Translation" /><Buttonandroid:id="@+id/btn_alpha"android:layout_width="match_parent"android:layout_height="wrap_content"android:textAllCaps="false"android:text="Alpha" /><Buttonandroid:id="@+id/btn_rotation"android:layout_width="match_parent"android:layout_height="wrap_content"android:textAllCaps="false"android:text="Rotation" /><Buttonandroid:id="@+id/btn_scale"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Scale"android:textAllCaps="false" /><TextViewandroid:id="@+id/tv"android:layout_width="70sp"android:layout_height="70sp"android:layout_gravity="center"android:background="#90CAF9"android:text="" /><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:orientation="vertical"><ImageViewandroid:id="@+id/iv"android:layout_width="30sp"android:layout_height="30sp"android:src="@drawable/icon" /><ImageViewandroid:id="@+id/iv2"android:layout_width="30sp"android:layout_height="30sp"android:layout_marginTop="50sp"android:layout_gravity="right"android:src="@drawable/icon" /></LinearLayout></RelativeLayout></LinearLayout></androidx.constraintlayout.widget.ConstraintLayout>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。