材质设计中的动画调整大小视图

sta*_*ete 14 android resize android-custom-view material-design

如果不涉及layoutParams,是否有另一种方法可以调整大小,折叠或展开视图?我在新的Material Design和新的Android Dialer应用程序的一些视频中看到了动画.Google表示材料可以轻松改变形状,大小,旋转,颜色等......但我找不到任何东西.

有向后兼容性吗?

到目前为止,为了调整大小,折叠或展开视图,我们必须使用layoutParams,例如:

public static void collapse(final View v) {
final int initialHeight = v.getMeasuredHeight();

Animation a = new Animation()
{
    @Override
    protected void applyTransformation(float interpolatedTime, Transformation t) {
        if(interpolatedTime == 1){
            v.setVisibility(View.GONE);
        }else{
            v.getLayoutParams().height = initialHeight - (int)(initialHeight * interpolatedTime);
            v.requestLayout();
        }
    }

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

a.setDuration((int)(initialHeight / v.getContext().getResources().getDisplayMetrics().density));
v.startAnimation(a);
Run Code Online (Sandbox Code Playgroud)

}

以下是我想从新的Google Android Dialer App获得的示例:

在此输入图像描述

use*_*324 8

我认为ViewPropertyAnimator就是你想要的.点击此链接http://developer.android.com/guide/topics/graphics/prop-animation.html#view-prop-animator

这是一个例子:

view.animate().scaleY(endHeight/initialHeight).start()

这与您在代码中执行的动画相同