Animator

主界面


package com.example.dell.animator;

import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    private ImageView button;
    private Button click1;
    private Button click2;
    private Button click3;
    private Button click4;
    private ObjectAnimator objectAnimator;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate( savedInstanceState );
        setContentView( R.layout.activity_main );
        button = findViewById( R.id.but_1 );
        click1 = findViewById( R.id.but_click1 );
        click2 = findViewById( R.id.but_click2 );
        click3 = findViewById( R.id.but_click3 );
        click4 = findViewById( R.id.but_click4 );
        click1.setOnClickListener( this );
        click2.setOnClickListener( this );
        click3.setOnClickListener( this );
        click4.setOnClickListener( this );
    }


    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case  R.id.but_click1:
                trance();
            break;
            case R.id.but_click2:
                rotation();
                break;
            case R.id.but_click3:
                alpha();
                break;
            case R.id.but_click4:
                argb();
                break;
        }
    }
    private void argb() {
        final ValueAnimator valueAnimator = ValueAnimator.ofFloat( 0, (float) 0.5,1 );
        valueAnimator.setDuration( 3000 );
        valueAnimator.start();
        valueAnimator.addUpdateListener( new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
               button.setScaleX( (Float) valueAnimator.getAnimatedValue() );
               button.setScaleY( (Float) valueAnimator.getAnimatedValue() );
            }
        } );
    }

    private void alpha() {
        /*final ValueAnimator valueAnimator = ValueAnimator.ofFloat(0,1,1);
        valueAnimator.setDuration( 3000 );
        valueAnimator.start();
        valueAnimator.addUpdateListener( new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                //button.setRotation( (Float) valueAnimator.getAnimatedValue() );
                button.setAlpha( (Float) valueAnimator.getAnimatedValue() );
            }
        } );*/
        ObjectAnimator objectAnimator = ObjectAnimator.ofFloat( button, "alpha", 0, 1 );
        objectAnimator.setDuration( 3000 );
        objectAnimator.start();
    }

    private void rotation() {
        /*final ValueAnimator valueAnimator = ValueAnimator.ofFloat( 0, 200,400,200,0 );
        valueAnimator.setDuration( 3000 );
        valueAnimator.start();
        valueAnimator.addUpdateListener( new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
               //button.setRotation( (Float) valueAnimator.getAnimatedValue() );
               button.setRotationX( (Float) valueAnimator.getAnimatedValue() );
               button.setRotationY( (Float) valueAnimator.getAnimatedValue() );
            }
        } );*/
        objectAnimator = ObjectAnimator.ofFloat( button, "rotationY", 0, 500,0 );
        objectAnimator.setDuration( 3000 );
        objectAnimator.start();
    }

    private void trance() {
        //ValueAnimtor 动画  父类 继承自Animator
       /* final ValueAnimator valueAnimator = ValueAnimator.ofFloat( 0, 200,0,400);
        valueAnimator.setDuration( 3000 );
        valueAnimator.start();
        valueAnimator.addUpdateListener( new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                button.setTranslationX( (Float) valueAnimator.getAnimatedValue() );
                button.setTranslationY( (Float) valueAnimator.getAnimatedValue() );
            }
        } );*/
       //ObjectAnimator继承自ValueAnimtor
        ObjectAnimator objectAnimator = ObjectAnimator.ofFloat( button, "translationX", 0, 500,0 );
        objectAnimator.setDuration( 3000 );
        objectAnimator.start();
    }
}

//布局文件

<?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"
    tools:context=".MainActivity">


    <ImageView
        android:id="@+id/but_1"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="@drawable/shape" />
    <LinearLayout
        android:layout_alignParentBottom="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button
            android:id="@+id/but_click1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="平移" />

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

        <Button
            android:id="@+id/but_click3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="淡入" />

        <Button
            android:id="@+id/but_click4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="渐变" />
    </LinearLayout>
</RelativeLayout>

猜你喜欢

转载自blog.csdn.net/qq_42250299/article/details/83210647