我正在使用翻译和缩放动画。首先,我将帧布局转换到屏幕中心,并使用布局参数将其位置参数设置到屏幕中心。这工作正常!在翻译动画结束时,我运行缩放动画,我的布局缩放为其原始大小的2倍。其实我的框架布局(我是动画)由按钮和图像视图组成。和android一样,动画不会转换视图,只会改变它必须绘制的位置。现在我的问题是,我无法让我的按钮工作。因为他们实际上并不存在!android在缩放动画后设置新大小
我在动画结束后通过设置其位置参数找到了翻译动画的解决方案。这将视图永久移动到新位置。
但是,在缩放动画的情况下,我必须改变布局的大小以及其内的孩子。但它不起作用,因为我将原始高度宽度乘以比例因子。这里是我的比例尺动画代码。
ScaleAnimation scaleAnim = new ScaleAnimation(1.0f, 2.0f, 1.0f,
2.0f, Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
scaleAnim.setDuration(600);
// scaleAnim.setFillEnabled(true);
scaleAnim.setFillAfter(true);
view.setAnimation(scaleAnim);
view.startAnimation(scaleAnim);
scaleAnim.setAnimationListener(new AnimationListener() {
public void onAnimationStart(Animation animation) {
}
public void onAnimationRepeat(Animation animation) {
}
public void onAnimationEnd(Animation animation) {
FrameLayout.LayoutParams par = (FrameLayout.LayoutParams) view
.getLayoutParams();
par.height = view.getMeasuredHeight() * 2;
par.width = view.getMeasuredWidth() * 2;
view.setLayoutParams(par);
view.requestLayout();
}
});
p.s that setFillAfter(true)and setFillEnabled(true)are not the solution。
你可以通过把你想要它是一切,当动画结束做到这一点,然后将其动画到该位置。确保在动画开始之前将其隐藏并禁用按钮,直到动画结束。 – TofferJ
问题是通过缩放动画原始高度和宽度在缩放后不会改变。所以我的按钮不起作用 –
即使您创建它们的全尺寸,然后将它们从比例10%缩放到原始大小,也不是这样吗?我用翻译和缩放动画做了类似的事情。当动画完成时,我可以点击按钮。我会尽力为你挖掘那段代码。 – TofferJ