属性动漫

package android.vip.com.appanimator;

import android.animation.Animator;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.graphics.Color;
import android.os.Build;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private TextView mText;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mText = (TextView) findViewById(R.id.tv_text);
    findViewById(R.id.btn_alpha).setOnClickListener(this);
    findViewById(R.id.btn_translation).setOnClickListener(this);
    findViewById(R.id.btn_rotation).setOnClickListener(this);
    findViewById(R.id.btn_scale).setOnClickListener(this);
    findViewById(R.id.btn_color).setOnClickListener(this);
    findViewById(R.id.btn_all).setOnClickListener(this);
    mText.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(MainActivity.this, "---", Toast.LENGTH_LONG).show();
        }
    });
}

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.btn_alpha://实现透明度
            ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(mText, "alpha", 1, 0.8f, 0.6f, 0.2f, 0, 0.2f, 0.5f, 1);
            objectAnimator.setDuration(6000);
            objectAnimator.start();
            break;
        case R.id.btn_translation://平移
            //translationY Y轴平移 translationX  X轴平移
            ObjectAnimator objectAnimator1 = ObjectAnimator.ofFloat(mText, "translationY", 0, 100, 300, 500, 300, 0);
            objectAnimator1.setDuration(2000);
            objectAnimator1.setRepeatCount(10);
            objectAnimator1.start();
            break;
        case R.id.btn_rotation://旋转
            ObjectAnimator objectAnimator2 = ObjectAnimator.ofFloat(mText, "rotation", 0, 90, 270);
            objectAnimator2.setDuration(3000);
            objectAnimator2.start();
            break;
        case R.id.btn_scale://缩放
            ObjectAnimator objectAnimator3 = ObjectAnimator.ofFloat(mText, "scaleY", 1, 2, 3, 2, 1, 0.5f, 0.1f);
            objectAnimator3.setDuration(3000);
            objectAnimator3.start();
            break;
        case R.id.btn_color://改变颜色
            ObjectAnimator objectAnimator4 = ObjectAnimator.ofInt(mText, "backgroundColor", Color.RED, Color.YELLOW, Color.BLACK, Color.BLUE);
            objectAnimator4.setDuration(3000);
            objectAnimator4.start();
            break;
        case R.id.btn_all://组合

// ObjectAnimator objectAnimator5 = ObjectAnimator.ofFloat(mText, “translationY”, 0,100,300, 500,300,0);
// objectAnimator5.setDuration(10000);
// objectAnimator5.start();
//
// ObjectAnimator objectAnimator6 = ObjectAnimator.ofFloat(mText, “translationX”, 0,100,300, 500,300,0);
// objectAnimator6.setDuration(10000);
// objectAnimator6.start();

            int width = getWindowManager().getDefaultDisplay().getWidth();
            int height = getWindowManager().getDefaultDisplay().getHeight();

// ObjectAnimator objectAnimator5 = ObjectAnimator.ofFloat(mText, “translationX”, 0,width-150 );
// objectAnimator5.setDuration(10000);
// objectAnimator5.start();
//
// ObjectAnimator objectAnimator5_Y = ObjectAnimator.ofFloat(mText, “translationY”, 0,1000 );
// objectAnimator5_Y.setDuration(10000);
// objectAnimator5_Y.start();
//
// ObjectAnimator objectAnimator7=ObjectAnimator.ofFloat(mText,“rotation”,0,90,270);
// objectAnimator7.setDuration(10000);
// objectAnimator7.start();
//
// ObjectAnimator objectAnimator8=ObjectAnimator.ofInt(mText,“backgroundColor”, Color.RED,Color.YELLOW,Color.BLACK,Color.BLUE);
// objectAnimator8.setDuration(10000);
// objectAnimator8.start();

            ObjectAnimator objectAnimator5 = ObjectAnimator.ofFloat(mText, "translationX", 0, width - dip2px(50));
            ObjectAnimator objectAnimator5_Y = ObjectAnimator.ofFloat(mText, "translationY", 0, height - dip2px(175));
            ObjectAnimator objectAnimator8=ObjectAnimator.ofInt(mText,"backgroundColor", Color.RED,Color.YELLOW,Color.BLACK,Color.BLUE);
            //after 先执行哪个
            //before 后执行哪个
            //with 同时执行
            AnimatorSet animatorSet = new AnimatorSet();
            // animatorSet.playSequentially(objectAnimator5,objectAnimator5_Y);
            animatorSet.play(objectAnimator5).with(objectAnimator5_Y).with(objectAnimator8);
            animatorSet.setDuration(3000);

            animatorSet.addListener(new Animator.AnimatorListener() {
                @Override
                public void onAnimationStart(Animator animation) {

                }

                @Override
                public void onAnimationEnd(Animator animation) {
                    Toast.makeText(MainActivity.this, "END", Toast.LENGTH_LONG).show();

                }

                @Override
                public void onAnimationCancel(Animator animation) {

                }

                @Override
                public void onAnimationRepeat(Animator animation) {

                }
            });

            animatorSet.start();

            break;

    }
}

public int dip2px(float dpValue) {
    final float scale = getResources().getDisplayMetrics().density;
    return (int) (dpValue * scale + 0.5f);
}

}

猜你喜欢

转载自blog.csdn.net/weixin_44266107/article/details/88780419
今日推荐