Android 在材质设计中设置调整视图大小的动画
在不涉及layoutParams的情况下,是否有其他方法可以调整视图的大小、折叠或展开视图?我在一些新材料设计的VIEO和新的Android拨号器应用程序中看到了这些动画。谷歌说材料可以很容易地改变形状、大小、旋转、颜色等。。。但我什么也找不到 有向后兼容性吗 到目前为止,为了调整视图大小、折叠或展开视图,我们必须使用以下layoutParams,例如: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
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
是一个更好的选择