public void objectAnimation(View v){        LinearLayout llProgress = (LinearLayout) findViewById(R.id.ll_progress);        final float scale = getResources().getDisplayMetrics().density;        float distance = (255 * scale + 0.5f);        ViewWrapper wrapper = new ViewWrapper(llProgress);        ObjectAnimator animator = ObjectAnimator.ofInt(wrapper,"width",(int)distance);        animator.setDuration(4000);        animator.start();    }
public void ivAnimation(final View v){        //单个属性        ObjectAnimator.ofFloat(v,"rotationX",0f,180f).setDuration(1000).start();        ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(v, "yjs", 1f, 0f);        objectAnimator.setDuration(1000);        objectAnimator.start();        //多个属性动画方法一        objectAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {            @Override            public void onAnimationUpdate(ValueAnimator animation) {                float scale = animation.getAnimatedFraction();                v.setAlpha(scale);                v.setScaleX(scale);                v.setScaleY(scale);            }        });        //多个属性动画方法二        PropertyValuesHolder phx = PropertyValuesHolder.ofFloat("alpha",1f,0f);        PropertyValuesHolder phy = PropertyValuesHolder.ofFloat("scaleX",1f,0f);        PropertyValuesHolder phz = PropertyValuesHolder.ofFloat("scaleY",1f,0f);        ObjectAnimator.ofPropertyValuesHolder(v,phx,phy,phz).setDuration(3000).start();        //动画定义在xml文件中        Animator animator = AnimatorInflater.loadAnimator(this,R.animator.scale);        animator.setTarget(v);        animator.start();    }
//如果某个属性没有get和set方法需要写一个wrapper类将get set封装    private  class ViewWrapper{        private View target;        public ViewWrapper(View v){            target= v;        }        public int getWidth(){            return target.getLayoutParams().width;        }        public void setWidth(int width){            target.getLayoutParams().width = width;            target.requestLayout();        }    }

xml文件

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" android:ordering="together">    <objectAnimator  android:duration="1000" android:propertyName="scaleX" android:valueFrom="1.0" android:valueTo="2.0" android:valueType="floatType" >    </objectAnimator>    <objectAnimator  android:duration="1000" android:propertyName="scaleY" android:valueFrom="1.0" android:valueTo="2.0" android:valueType="floatType"></objectAnimator></set>

参考链接一
参考链接二

更多相关文章

  1. Android控制闪光灯的方法(打开与关闭)
  2. Android遍历API (1) 动画篇——克隆动画AnimationCloning
  3. Android(安卓)12上全新的应用启动画面,还不适配一下?
  4. 每日一道Android(安卓)面试题,面试途中不败题
  5. android获取通知权限
  6. android 三种解析,构建xml方法
  7. android 动态 布局
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. Python list sort方法的具体使用

随机推荐

  1. 更简单的学习Android事件分发
  2. Android的TextView/EditText使用Characte
  3. Android中的文件读写全面总结
  4. 直播软件源码Android(安卓)shape半圆,1/4
  5. Android Studio之导入外部jar包
  6. Android任务切换方法
  7. android中圆角的bug
  8. 关于android工程中R.java不自动生成的问
  9. 解析 Android(安卓)异步消息机制,深入了解
  10. Android TextView的滑动