我想创建以下概念:动画视图的宽度以匹配父项?
首先将视图展开为其父宽度(它不相同)。 然后将视图展开到其父母的高度。
我知道我可以用AnimatorSet()
创建序列。我找不到什么属性/动画来创建结果。
我对宽度动画的想法: 我可能需要动画两个定义左右两个点的动画,或者动画翻译和宽度。
我有点困惑,哪些属性会诀窍?
我想创建以下概念:动画视图的宽度以匹配父项?
首先将视图展开为其父宽度(它不相同)。 然后将视图展开到其父母的高度。
我知道我可以用AnimatorSet()
创建序列。我找不到什么属性/动画来创建结果。
我对宽度动画的想法: 我可能需要动画两个定义左右两个点的动画,或者动画翻译和宽度。
我有点困惑,哪些属性会诀窍?
我认为没有必要使事情变得复杂,你可以使用width属性首先再其次是在AnimatorSet高度,你的看法重力属性将确定在哪个方向视图将扩大...
你需要定义自定义属性来做到这一点(我知道,愚蠢)。身高例如:
public static final Property<View, Integer> PROPERTY_HEIGHT =
new Property<View, Integer>(Integer.class, "viewLayoutHeight") {
@Override
public void set(View object, Integer value) {
object.getLayoutParams().height = value.intValue();
object.requestLayout();
}
@Override
public Integer get(View object) {
return object.getLayoutParams().height;
}
};
然后作为一个正常的财产使用:
ObjectAnimator.ofInt(view, PROPERTY_HEIGHT, minHeight, maxHeight);
你需要在运行时获取父尺寸(可能使用ViewTreeObserver.OnGlobalLayoutListener
)。
没有试过,只是问扩展的方向怎么样? – Diolor 2014-09-21 14:36:58
这不是你问题的一部分。如果它满足你原来的问题,请接受这个答案。您可能需要单独控制翻译。 – 2014-09-21 14:51:46
我的答案解决了你的问题吗? – 2014-09-23 11:57:55