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

时间:2014-11-07 09:31:22

标签: 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);

}

以下是我想要的新Google Android拨号器应用的示例:

enter image description here

1 个答案:

答案 0 :(得分:8)

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

以下是一个例子:

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

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