动画视图的宽度以匹配父级?

时间:2014-09-21 04:35:14

标签: android android-animation

我想创建以下概念:

首先将视图展开到其父级的宽度(它不相同)。 然后将视图展开到其父级的高度。

我知道我可以使用AnimatorSet()创建序列。我找不到的是用于创建结果的动画属性。

我对宽度动画的想法: 我可能需要为两个定义左右的点设置动画,或者为平移和宽度设置动画。

我有点困惑,哪些属性会起作用?

2 个答案:

答案 0 :(得分:1)

您需要定义自定义属性来执行此操作(我知道,愚蠢)。高度示例:

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)。

答案 1 :(得分:0)

我认为没有必要使事情复杂化,你可以先使用width属性然后在AnimatorSet中使用高度,你的视图引力属性将定义视图将在哪个方向展开......

相关问题