2016-03-09 43 views
0

我有一个线性布局,我想动画来调整大小,当我点击它。调整大小后,您应该可以看到按钮和文字。我试着用这个动画:动画调整大小的视图,而不调整视图内的大小按钮

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

而且我想这:

container.startAnimation(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没有调整里面的孩子?

感谢

回答

0

你好,你可以覆盖孩子的onMeasure()方法,并使其尺寸例如常量。

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); 
    } 
});