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

Android 在材质设计中设置调整视图大小的动画,android,resize,android-custom-view,material-design,Android,Resize,Android Custom View,Material Design,在不涉及layoutParams的情况下,是否有其他方法可以调整视图的大小、折叠或展开视图?我在一些新材料设计的VIEO和新的Android拨号器应用程序中看到了这些动画。谷歌说材料可以很容易地改变形状、大小、旋转、颜色等。。。但我什么也找不到 有向后兼容性吗 到目前为止,为了调整视图大小、折叠或展开视图,我们必须使用以下layoutParams,例如: public static void collapse(final View v) { final int initialHeight = v

在不涉及layoutParams的情况下,是否有其他方法可以调整视图的大小、折叠或展开视图?我在一些新材料设计的VIEO和新的Android拨号器应用程序中看到了这些动画。谷歌说材料可以很容易地改变形状、大小、旋转、颜色等。。。但我什么也找不到

有向后兼容性吗

到目前为止,为了调整视图大小、折叠或展开视图,我们必须使用以下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);
}

以下是我希望从新的谷歌安卓拨号器应用程序中得到的示例:


我认为ViewPropertyAnimator就是您想要的。 检查此链接

以下是一个例子:

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


这与您在代码中使用
scaleY(..)所做的动画相同

不会影响布局。只有项目的可见大小会改变,但布局中视图占用的空间不会改变。是的,
PropertyValuesHolder
是一个更好的选择