除了使用layoutParams之外,还有其他方法可以调整、折叠或扩展视图吗?我在一些新材料设计的视频和新的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);
这是我想要的新版Google Android拨号应用程序的示例:
}
scaleY(..)
不会影响布局。只有项目的可见大小会改变,但视图在布局中占用的空间不会改变。 - GarethPropertyValuesHolder
将是更好的选择。 - user3285324