Без привлечения layoutParams есть ли другой способ изменить размер, развернуть или расширить вид? Я видел эти анимации в некоторых вихрях нового Material Design и в новом приложении Android Dialer. Google сказал, что материал может легко изменять форму, размер, поворот, цвет и т. Д., Но я ничего не могу найти.Animate Resize View in Material Design
Есть ли обратная совместимость?
До сих пор для того, чтобы изменить размер, свернуть или развернуть вид, мы должны были работать с 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 Dialer App:
Использование 'ScaleY (..)' не влияет на расположение , Изменяется только видимый размер элемента, но не пространство, занимаемое представлением в макете. – Gareth
Yup, «PropertyValuesHolder» будет лучшим вариантом – user3285324