安卓(Android) 怎么使用自定义动画(Animation)展开视图(View)

2019年10月15日20:34:22安卓(Android) 怎么使用自定义动画(Animation)展开视图(View)已关闭评论 336 906字阅读3分1秒

1.简介

安卓(Android) 怎么使用自定义动画(Animation)展开视图(View)?——请看下文。

2.示例代码

/**
 * 版权所有 编程十万个怎么办(www.tah1986.com)
 */


import android.view.View;
import android.view.animation.Animation;
import android.view.animation.Transformation;
import android.widget.RelativeLayout;

public class Main {
    public static void expand(final View v) {
        v.measure(RelativeLayout.LayoutParams.MATCH_PARENT,
                RelativeLayout.LayoutParams.WRAP_CONTENT);
        final int targetHeight = v.getMeasuredHeight();

        
        v.getLayoutParams().height = 1;
        v.setVisibility(View.VISIBLE);
        Animation a = new Animation() {
            @Override
            protected void applyTransformation(float interpolatedTime,
                    Transformation t) {
                v.getLayoutParams().height = interpolatedTime == 1 ? RelativeLayout.LayoutParams.WRAP_CONTENT
                        : (int) (targetHeight * interpolatedTime);
                v.requestLayout();
            }

            @Override
            public boolean willChangeBounds() {
                return true;
            }
        };

        
        a.setDuration((int) (targetHeight / v.getContext().getResources()
                .getDisplayMetrics().density) * 2);
        v.startAnimation(a);
    }
}

 
继续阅读
编程十万个怎么办