chapter-7 Activity切换动画 Button放大动画 Layoutanimation动画

来源:互联网 发布:欧洲人看俄罗斯 知乎 编辑:程序博客网 时间:2024/06/07 12:40

1  Activity切换动画 


Intent intent = new Intent(this, TestActivity.class);startActivity(intent);overridePendingTransition(R.anim.enter_anim, R.anim.exit_anim);
R.anim.enter_anim

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:duration="300"    android:interpolator="@android:anim/accelerate_interpolator"    android:shareInterpolator="true" >    <alpha        android:fromAlpha="0.0"        android:toAlpha="1.0" />    <translate        android:fromYDelta="500"        android:toXDelta="0" /></set>
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:duration="300"    android:interpolator="@android:anim/accelerate_interpolator"    android:shareInterpolator="true" >    <alpha        android:fromAlpha="1.0"        android:toAlpha="0" />    <translate        android:fromYDelta="0"        android:toYDelta="500" /></set>

Button放大动画

@Overridepublic void onWindowFocusChanged(boolean hasFocus) {    super.onWindowFocusChanged(hasFocus);    if (hasFocus) {        Button button = (Button)findViewById(R.id.button1);        performAnimate(button, button.getWidth(), 500);    }}private void performAnimate(final View target, final int start, final int end) {    ValueAnimator valueAnimator = ValueAnimator.ofInt(1, 100);    valueAnimator.addUpdateListener(new AnimatorUpdateListener() {        // 持有一个IntEvaluator对象,方便下面估值的时候使用        private IntEvaluator mEvaluator = new IntEvaluator();        @Override        public void onAnimationUpdate(ValueAnimator animator) {            // 获得当前动画的进度值,整型,1-100之间            int currentValue = (Integer) animator.getAnimatedValue();            Log.d(TAG, "current value: " + currentValue);            // 获得当前进度占整个动画过程的比例,浮点型,0-1之间            float fraction = animator.getAnimatedFraction();            // 直接调用整型估值器通过比例计算出宽度,然后再设给Button            target.getLayoutParams().width = mEvaluator.evaluate(fraction, start, end);            target.requestLayout();        }    });    valueAnimator.setDuration(5000).start();

listView布局动画


ListView listView = (ListView) layout.findViewById(R.id.list);Animation animation = AnimationUtils.loadAnimation(this, R.anim.anim_item);LayoutAnimationController controller = new LayoutAnimationController(animation);controller.setDelay(0.5f);controller.setOrder(LayoutAnimationController.ORDER_NORMAL);listView.setLayoutAnimation(controller);
R.anim.anim_item
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:duration="300"    android:interpolator="@android:anim/accelerate_interpolator"    android:shareInterpolator="true" >    <alpha        android:fromAlpha="0.0"        android:toAlpha="1.0" />    <translate        android:fromXDelta="500"        android:toXDelta="0" /></set>


0 0