zoukankan      html  css  js  c++  java
  • Android 属性动画

    类图

    常用的属性

    位置 translation

    大小 scaleY scaleX

    旋转角度 rotation 轴心 pivot

    颜色 textColor backgroundColor

    定义方式:

    一、代码定义

    package com.jinll.studywidget.test;
    
    import android.animation.Animator;
    import android.animation.AnimatorSet;
    import android.animation.LayoutTransition;
    import android.animation.ObjectAnimator;
    import android.animation.TimeInterpolator;
    import android.animation.ValueAnimator;
    import android.os.Bundle;
    import android.support.annotation.Nullable;
    import android.support.v7.app.AppCompatActivity;
    import android.view.animation.AccelerateDecelerateInterpolator;
    import android.widget.ImageView;
    import android.widget.LinearLayout;
    import android.widget.TextView;
    
    import com.jinll.studywidget.R;
    import com.onetime.nww.util.ToastUtil;
    
    import butterknife.BindView;
    import butterknife.ButterKnife;
    import butterknife.OnClick;
    
    /**
     * Created by Jin Liang on 2018/9/17.
     */
    public class AnimatorActivity extends AppCompatActivity {
    
        @BindView(R.id.textView4)
        TextView mTextView4;
    
        @BindView(R.id.textView5)
        TextView mTextView5;
    
        @BindView(R.id.imageView5)
        ImageView mImageView5;
    
        @BindView(R.id.imageView7)
        ImageView mImageView7;
    
        @BindView(R.id.ll_one)
        LinearLayout oneLl;
    
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_animator_a);
            ButterKnife.bind(this);
    
            ValueAnimator valueAnimator = ValueAnimator.ofInt(0, 700);
            valueAnimator.setDuration(4000);
            valueAnimator.setInterpolator(new AccelerateDecelerateInterpolator());
            valueAnimator.start();
    
            valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                @Override
                public void onAnimationUpdate(ValueAnimator animation) {
                    float value = Float.valueOf((Integer)animation.getAnimatedValue());
                    mTextView4.setTranslationX(value);
                    mTextView4.setTranslationY(value);
                }
            });
    
            mImageView5.setPivotX(100);
            mImageView5.setPivotY(100);
            ObjectAnimator oa = ObjectAnimator.ofFloat(mImageView5, "rotation", 0f, 360f);
            oa.setDuration(2000);
            oa.start();
    
            ObjectAnimator o7 = ObjectAnimator.ofFloat(mImageView7, "scaleX", 0.2f, 1f);
            o7.setDuration(2500);
            o7.start();
    
            ValueAnimator va = ObjectAnimator.ofArgb(mTextView4, "backgroundColor", 0x0000000, 0xffaa4444);
            va.setDuration(4000);
            va.start();
    
            ValueAnimator va5 = ObjectAnimator.ofArgb(mTextView5, "textColor", 0x0000000, 0xffdd4444);
            va5.setDuration(4000);
            va5.start();
        }
    }

     二、xml定义

    类与标签对应关系:

    ValueAnimator - <animator>
    ObjectAnimator - <objectAnimator>
    AnimatorSet - <set>

    eg1

    <set android:ordering="sequentially">
        <set>
            <objectAnimator
                android:propertyName="x"
                android:duration="500"
                android:valueTo="400"
                android:valueType="intType"/>
            <objectAnimator
                android:propertyName="y"
                android:duration="500"
                android:valueTo="300"
                android:valueType="intType"/>
        </set>
        <objectAnimator
            android:propertyName="alpha"
            android:duration="500"
            android:valueTo="1f"/>
    </set>
    
    AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(myContext,
        R.animator.property_animator);
    set.setTarget(myObject);
    set.start();

    eg2

    <animator xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="1000"
        android:valueType="floatType"
        android:valueFrom="0f"
        android:valueTo="-100f" />
    
    
    
    ValueAnimator xmlAnimator = (ValueAnimator) AnimatorInflater.loadAnimator(this,
            R.animator.animator);
    xmlAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator updatedAnimation) {
            float animatedValue = (float)updatedAnimation.getAnimatedValue();
            textView.setTranslationX(animatedValue);
        }
    });
    
    xmlAnimator.start();
    = = = = = = = = = = = = = = = = = = 天道酬勤 = = = = = = 活在当下 = = = = = = = = = = = = = = = = = =
  • 相关阅读:
    企业网盘针对文件权限管理的技术实现
    学校私有云盘在学校信息化建设中的作用-教学资源库平台
    Mobox 知识管理平台助推市长质量奖
    为勇敢的华裔女子点赞
    一群喵星人把他家包围了。。
    【OI】简单的分块
    【OI】Kruskal & ufs (克鲁斯卡与并查集)
    【OI】向量&矩阵乘法
    【OI】同余方程
    【Ubuntu】某灯图标过大
  • 原文地址:https://www.cnblogs.com/brillian-Jin/p/9669790.html
Copyright © 2011-2022 走看看