无需在视图

时间:2016-03-09 13:33:24

标签: android animation

我有一个线性布局,当我点击它时,我希望动画调整大小。调整大小后,您应该能够看到按钮和文本。我已尝试使用此动画制作动画:

container.animate().scaleX(scale);
container.animate().scaleY(scale);

我也尝试过这个:

container.startAnimation(anim);

其中anim是(用于使视图更大):

<scale
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"
    android:fromXScale="1.0"
    android:toXScale="10.0"
    android:fromYScale="1.0"
    android:toYScale="10.0"
    android:pivotX="0%"
    android:pivotY="0%"
    android:fillAfter="false"
    android:duration="700" />

但问题是每次我调整LinearLayout的大小时,里面的孩子也会调整大小。这应该与AndroidSDK 16及更高版本兼容。如何在不调整孩子内部大小的情况下实现 this

由于

2 个答案:

答案 0 :(得分:0)

您好,您可以覆盖子项的onMeasure()方法,并将其维度作为常量,例如。

答案 1 :(得分:0)

float scale = 1.2f;
ValueAnimator animator = ValueAnimator.ofInt(0,100); 
animator.setTarget(container);  
animator.setDuration(1000).start();  
animator.addUpdateListener(new AnimatorUpdateListener()  
{  
    @Override  
    public void onAnimationUpdate(ValueAnimator animation)  
    {   
        LayoutParams layoutparams = container.getLayoutParams();
        layoutparams.height = (int)(layoutparams.height* animation.getAnimatedValue() *(scale -1f));
        layoutparams.width= (int)(layoutparams.width* animation.getAnimatedValue() *(scale -1f));
        container.setLayoutParams(layoutparams);
    }  
});