• Android 一般动画animation和属性动画animator


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    package com.example.animation;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.animation.TranslateAnimation;
    import android.widget.ImageView;
    import android.widget.Toast;
     
    public class MainActivity extends Activity {
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
         
        }
         
        public void click(View view){
            Toast.makeText(this, "click", Toast.LENGTH_SHORT).show();
        }
         
        public void move(View view ){
            float fromXDelta=0;
            float toXDelta=0;
            float fromYDelta=0;
            float toYDelta=200;
            TranslateAnimation animation = new TranslateAnimation(fromXDelta, toXDelta, fromYDelta, toYDelta);
            /**
             * time
             */
            animation.setDuration(1000);
            animation.setFillAfter(true);
            ImageView imageView=(ImageView)findViewById(R.id.imageView);
            imageView.startAnimation(animation);
        }
          
    }

    这是一般动画,再看属性动画

    区别:一般动画变换后只是图片移动了,view的位置不变,然而属性动画view随着图片移动。

    1
    2
    3
    4
    5
    public void move(View view ){
     
        ImageView imageView=(ImageView)findViewById(R.id.imageView);
        ObjectAnimator.ofFloat(imageView, "translationY", 0f,200f).setDuration(1000).start();
    }


    多种动画同时进行

    1
    2
    3
    4
    5
    6
    7
    public void move(View view ){
     
        ImageView imageView=(ImageView)findViewById(R.id.imageView);
        ObjectAnimator.ofFloat(imageView, "translationY", 0f,200f).setDuration(1000).start();
        ObjectAnimator.ofFloat(imageView, "translationX", 0f,200f).setDuration(1000).start();
        ObjectAnimator.ofFloat(imageView, "rotation", 0,360f).setDuration(1000).start();
    }

    Google提供了一种更节省系统资源的多种动画同时播放

    1
    2
    3
    4
    5
    6
    7
    8
    9
    public void move(View view ){
     
        ImageView imageView=(ImageView)findViewById(R.id.imageView);
     
        PropertyValuesHolder p1=PropertyValuesHolder.ofFloat("rotation", 0,360f);
        PropertyValuesHolder p2=PropertyValuesHolder.ofFloat("translationX", 0f,200f);
        PropertyValuesHolder p3=PropertyValuesHolder.ofFloat("translationY", 0f,200f);
        ObjectAnimator.ofPropertyValuesHolder(imageView, p1,p2,p3).setDuration(1000).start();
    }

    同时Google提供了animatorset,允许多种不同动画按照用户要求播放,如使用set.palyTpgether() set.playSequentially()

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    public void move(View view ){
     
        ImageView imageView=(ImageView)findViewById(R.id.imageView);
     
     
        ObjectAnimator animator1=ObjectAnimator.ofFloat(imageView, "rotation", 0,360f);
        ObjectAnimator animator2=ObjectAnimator.ofFloat(imageView, "translationX", 0,200f);
        ObjectAnimator animator3=ObjectAnimator.ofFloat(imageView, "translationY", 0,200f);
     
        AnimatorSet set=new AnimatorSet();
        //set.playTogether(animator1,animator2,animator3);
        set.playSequentially(animator1,animator2,animator3);
        set.setDuration(1000);
        set.start();
    }
     

    结伴旅游,一个免费的交友网站:www.jieberu.com

    推推族,免费得门票,游景区:www.tuituizu.com

  • 相关阅读:
    Android WebView 获取网页的标题
    Android APK 文件自动安装
    DownloadManager 的使用
    Android Java 自定义异常
    Android NDK
    android assets文件夹资源的访问
    GitHub 基本常用知识解答2
    hbuilder egit插件的安装使用--项目文件丢失的教训
    微软收购跨平台移动应用开发商Xamarin
    Android Study 之 初识ButterKnife(8.5.1)及简单运用
  • 原文地址:https://www.cnblogs.com/rabbit-bunny/p/4260037.html
Copyright © 2020-2023  润新知