我有一个线性布局,当我点击它时,我希望动画调整大小。调整大小后,您应该能够看到按钮和文本。我已尝试使用此动画制作动画:
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 ?
由于
答案 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);
}
});